Jenkins 和 Xcode5 单元测试目标 - 没有测试输出?

Posted

技术标签:

【中文标题】Jenkins 和 Xcode5 单元测试目标 - 没有测试输出?【英文标题】:Jenkins and Xcode5 unit test target - no test output? 【发布时间】:2013-09-16 09:16:12 【问题描述】:

我正在将 Jenkins CI 服务器从 XCode 4.6 升级到 XCode 5 和 ios SDK 7。

要运行单元测试,我现在必须使用xcodebuild test。我将此命令的输出通过管道传输到生成测试报告的 Ruby 脚本。

升级后这不再起作用。我认为问题在于xcodebuild test 启动了一个新进程来实际运行测试。我日志中的最后一条语句是

/bin/sh -c /Volumes/Data/Jenkins/jobs/MyProject-Unit/workspace/Build/Intermediates/Redacted.build/Debug-iphonesimulator/UnitTests.build/Script-261C7EA912FD9A4B00F7A53E.sh

在 Jenkins 日志中找不到该点之后的输出,但是当我在自己的机器上运行它时,我会在控制台中打印出测试结果。

这里发生了什么,我怎样才能取回测试报告?

【问题讨论】:

【参考方案1】:

我在同一条路上。我相信如果你查看那个脚本,它会转过身来调用这个脚本:

$SYSTEM_DEVELOPER_DIR/Tools/RunUnitTests

这是用于运行单元测试的脚本。现在,在 Xcode 5 中,它只是告诉您删除 Xcode 4 自动创建的运行脚本构建阶段。如果您从 Xcode 5 运行 RunUnitTests,它只会显示:

RunUnitTests 已过时。要为您的目标运行单元测试,请使用 Xcode IDE 中的测试方案操作和 xcodebuild 中的测试操作。 您可以删除调用 RunUnitTests 的运行脚本构建阶段 来自您的单元测试捆绑目标。

我已经按照它说的做了(删除了运行脚本阶段),但在 Jenkins 下我仍然没有得到任何输出,也许是因为,正如你所猜测的,这是一个新进程,而 Jenkins 看到第一个进程已完成,并且跳出来。

更新:更多信息:How can I get Xcode 5 to run iOS unit tests on a Jenkins slave?

【讨论】:

以上是关于Jenkins 和 Xcode5 单元测试目标 - 没有测试输出?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Ivy 构建和单元测试?

用于单元测试的 Xcode 5 双日志

Jenkins 中的单元测试失败

Jenkins怎么集成c++单元测试?

设置Jenkins使用Karma和Eslint进行单元测试和Lint检查

Jenkins iOS 作业中断,因为“致命:日志语句不同步:当前测试用例为空”