如何在命令行中捕获 OCUnit 的测试失败/成功?

Posted

技术标签:

【中文标题】如何在命令行中捕获 OCUnit 的测试失败/成功?【英文标题】:How do I catch OCUnit's test fail/success in command line? 【发布时间】:2011-06-14 01:29:32 【问题描述】:

我的期望:# 构建成功 # 和 # 测试失败 #

实际结果:只有 #Build Succeeded #

如何在命令行中获得失败/成功? [iphone,objective-c,xcode4,OCUnit]

我是 OCUnit 和 Xcode4 的新手。我创建项目: https://github.com/sanemat/HogeHoge 这是 xcode4 的脚手架代码。我在 xcode gui 中运行测试,#Test Failed# 成功出现。在命令行中(我想使用 jenkins),我使用以下命令。

xcodebuild -target HogeHogeTests -configuration Debug -sdk iphonesimulator4.3 clean build

我看到 #Build Succeeded # 然后完成了。我想运行测试并得到它的结果。怎么样?

已编辑:

我找到了BPOCUnitXMLReporter。这是针对 MacOS 的。我forked并调整了ios

【问题讨论】:

嗨,Sanemat,只是为了解决这个问题:SO 的工作方式是您对有帮助的答案投赞成票,并接受对您有用的答案。考虑让您的编辑成为答案,24 小时后您可以接受它作为答案。 【参考方案1】:

我找到了BPOCUnitXMLReporter。这是针对 MacOS 的。我forked并调整了iOS。

【讨论】:

在您的分叉项目中,如何让 Jenkins 拉入 ocunit.xml 文件?或者换一种说法,怎么把模拟器的Application的文件夹传给Jenkins? 我很满意输出xml格式,所以你可以写logs/junit.xml例如junit 日志模式。或者我建议使用 GHUnit 而不是 OCUnit。这对 Jenkins 更友好。【参考方案2】:

试试Text Finder Plugin 它允许你在日志中搜索一个字符串,并根据它设置通过或失败。

【讨论】:

【参考方案3】:

您可以将自定义测试记录器与 OCUnit 集成。在这里查看我的答案: How do I trap OCUnit test pass/failure messages/events

【讨论】:

【参考方案4】:

您正在寻找的是这个未记录的参数(您也需要 sdk 和 target)从终端运行您的 OCUnit 测试

xcodebuild  -target MyTarget -sdk iphonesimulator   TEST_AFTER_BUILD=YES

【讨论】:

以上是关于如何在命令行中捕获 OCUnit 的测试失败/成功?的主要内容,如果未能解决你的问题,请参考以下文章

OCUnit - 测试用例失败时中断?

如何从命令行在 iPhone 上启动 OCUnit 测试

OCUnit 测试失败,但 Xcode Log Navigator 说没有问题

使用 Makefile 编译失败但在命令行中成功

做OCUnit,设置构建后测试为yes,项目无法构建成功

Xcode 的 OCUnit 测试能否在 iOS 设备而不是模拟器上运行