2017-05-24 118 views
1

我是Jenkins的新手,并且正在尝试为我的iOS应用程序设置CI。我在项目中创建了一个单元测试目标,并配置了Jenkins以正确构建和运行我的单元测试,但在尝试实际输出其余结果xml文件时构建失败,我不确定我在做什么错误。我借了很多想法从这些来源提出:Xcode 8 Jenkins JUnit错误:测试报告没有找到报告文件

https://www.raywenderlich.com/22816/beginning-automated-testing-with-xcode-part-22 http://www.sailmaker.co.uk/blog/2013/04/02/advanced-jenkins-for-ios-and-mac/

我的实际控制台日志生成后看起来是这样的:

=== BUILD TARGET run_to_it OF PROJECT run_to_it WITH CONFIGURATION Debug === 

Check dependencies 

=== BUILD TARGET run_to_itTests OF PROJECT run_to_it WITH CONFIGURATION Debug === 

Check dependencies 

** BUILD SUCCEEDED ** 

Recording test results 
ERROR: Step ‘Publish JUnit test result report’ failed: No test report files were found. Configuration error? 
Finished: FAILURE 

我的构建步骤执行shell是这样的:

export DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer/ 

security unlock-keychain -p ${KEYCHAIN_PASSWORD} ${KEYCHAIN_PATH} 
security set-key-partition-list -S apple-tool:,apple:,codesign: -s -k ${KEYCHAIN_PASSWORD} ${KEYCHAIN_PATH} 
xcrun xcodebuild clean build CODE_SIGN_IDENTITY="${CODE_SIGNING_IDENTITY}" PROVISIONING_PROFILE=${PROVISIONING_PROFILE} OTHER_CODE_SIGN_FLAGS="--keychain ${KEYCHAIN_PATH}" 


xcodebuild -target run_to_itTests -configuration Debug -sdk iphonesimulator ONLY_ACTIVE_ARCH=NO TEST_AFTER_BUILD=YES GCC_TREAT_WARNINGS_AS_ERRORS=NO WANT_IOS_SIM=YES OBJROOT="${WORKSPACE}"/tmp/objs build | /usr/local/bin/ocunit2junit 

我的构建测试报告的步骤是这样的: enter image description here

我保证我已经安装了必要的插件以及在/usr/local/bin目录安装ocunit2junit宝石以及具有安装在詹金斯的JUnit插件。

enter image description hereenter image description here

我不知道是否正在生成任何XML文件在所有的,因为我已经通过在詹金斯工作区的每个文件夹看了看,见没有这样的XML文件的任何地方100%。我不确定是否需要在任何构建步骤中明确指定要创建的文件,还是默认处理该文件。我在网上看到了很多,我一直无法确定地解决问题。

对于上下文:我的Jenkins服务器此刻正在我的Mac上运行。我有一个Jenkins用户,在我的本地机器上有一个工作区。我也在运行macOS Sierra,我不确定测试报告文件夹是否存在任何权限问题。我看到该文件夹​​正在创建,但没有任何XML文件放在它的内部。

如果我删除Publish JUnit test report result,那么我的项目将成功构建。

回答

0

测试报告XML字段(发布JUnit测试结果报告选项)上的值似乎是正确的。如果构建之后,此目录中没有任何xml文件,则问题位于您的测试中(并生成xml junit结果文件),而不是发布JUnit测试结果报告配置。

您可以确定您的单元测试是否使用Junit格式在xml文件中生成结果?

+0

是的,我怀疑也是这个问题,我找不到任何这样的XML文件。我在jenkins目录中梳理了项目的工作空间,发现没有生成XML文件。你能否进一步阐述你的问题在测试中是什么意思? – zic10

+0

如果您想发布Junit测试结果报告,您的单元测试必须在junit格式的xml文件中生成结果。是这样吗?你如何做你的单元测试?你的单元测试的输出是什么? –

+0

我的单元测试是一个独立的测试目标,它在代码中运行一个单元测试。除此之外,我没有其他配置。 – zic10