Xcode 8 Jenkins JUnit错误:测试报告未找到报告文件

时间:2017-05-24 13:49:57

标签: java xcode unit-testing jenkins junit

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

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

我确保已经安装了必要的插件,并在ocunit2junit目录中安装了/usr/local/bin gem,并在Jenkins中安装了JUnit插件。

enter image description here enter image description here

我不是100%确定是否正在生成任何xml文件,因为我查看了Jenkins工作区中的每个文件夹,并且在任何地方都看不到这样的xml文件。我不确定是否需要在任何构建步骤中明确指定要创建的文件,或者是否默认处理它。我在互联网上看得很远,但我还没能最终找出问题所在。

对于上下文:我的Jenkins服务器目前正在我的Mac上运行。我有一个Jenkins用户在我的本地机器上有一个工作区。我还在运行macOS Sierra,我不确定test-reports文件夹是否存在任何权限问题。我看到正在创建文件夹但是没有放在其中的xml文件。

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

1 个答案:

答案 0 :(得分:0)

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

你能确定你的单元测试在xml文件中使用Junit格式生成结果吗?