我是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
我确保已经安装了必要的插件,并在ocunit2junit
目录中安装了/usr/local/bin
gem,并在Jenkins中安装了JUnit
插件。
我不是100%确定是否正在生成任何xml文件,因为我查看了Jenkins工作区中的每个文件夹,并且在任何地方都看不到这样的xml文件。我不确定是否需要在任何构建步骤中明确指定要创建的文件,或者是否默认处理它。我在互联网上看得很远,但我还没能最终找出问题所在。
对于上下文:我的Jenkins服务器目前正在我的Mac上运行。我有一个Jenkins用户在我的本地机器上有一个工作区。我还在运行macOS Sierra
,我不确定test-reports文件夹是否存在任何权限问题。我看到正在创建文件夹但是没有放在其中的xml文件。
如果我删除Publish JUnit test report result
,那么我的项目将成功构建。
答案 0 :(得分:0)
测试报告XMLs字段上的值(发布JUnit测试结果报告选项)似乎是正确的。如果您在构建之后没有在此目录中包含任何xml文件,则问题出在测试内(并生成xml junit结果文件),而不是发布JUnit测试结果报告配置。
你能确定你的单元测试在xml文件中使用Junit格式生成结果吗?