2011-10-04 73 views
0

我使用FoneMonkey + Jenkins进行自动化iOS测试。我请FoneMonkey生成XML报告(FM_ENABLE_XML_REPORT - 设置为TRUE)并使用waxsim运行它。今天我发现,当应用程序崩溃时(即由于NSInvalidArgumentException)xml报告没有生成。然后在Jenkis中,我看到100%传球(我使用标准的JUNIT插件),显然不是这样。Jenkins运行期间FoneMonkey测试崩溃

察觉这个问题的唯一方法是: 一)分析詹金斯控制台日志(即寻找*** Terminating app due to uncaught exception) B)发现,在詹金斯报告运行测试的次数越低则perviously(这是我的队友是如何发现的问题)。

我知道我可以使用Jenkins Text Finder插件解决方案a),但我想要准确的报告。

有没有办法实现它?如果否,FoneMonkey是否有用?

回答

-1

如果执行工具失败(由非零退出代码指示),Jenkins会检测到这一情况并将构建标记为失败。如果工具被打破,詹金斯可以做的不多。

对于你的情况,我看到几个可能性:

  • FoneMonkey应该是固定的,当被测试的应用程序崩溃
  • FoneMonkey应该是固定的,始终输出XML返回一个非零退出代码,即使当被测应用程序崩溃
  • 你可以写一个自定义的FoneMonkey输出到JUnit的解析器,而不是依靠FoneMonkey(例如,类似的项目存在解析Android的测试运行器输出)
+0

谢谢,但并不是那么容易。 1. FoneMonkey只是lib添加到应用程序,所以它可以返回退出代码到主机(它运行在waxsim上)。 2.因为它是lib,所以当应用程序崩溃时它不能做任何事情(即属性报告)。 3.我知道在Android上它是仪器/测试运行器等,在iOS上没有。所以唯一的办法就是分析整个日志(比如在android中解析logcat)。 –

+0

啊,你必须嵌入它?这听起来不太好。但是,如果测试运行器在应用程序失败的情况下不返回非零输出,那肯定是一个错误。无论如何,如果FoneMonkey在应用程序崩溃时无法生成报告,那么在构建结束时如何生成报告?你能整合像BPOCUnitXMLReporter这样的东西,而不是依靠FoneMonkey的输出吗?你有没有向他们的错误跟踪器提出问题,询问这些问题?什么阻止你解析日​​志输出? –

+0

我认为BPOCUnitXMLReporter仅适用于OCUnit测试。关于返回非零退出代码 - 我不确定这是否是运行测试时的最佳方法,例如,当ruin JUnit测试时,Jenkins的默认行为只是将构建标记为unstable并不成功 - http://stackoverflow.com/questions/ 1004912 /哈德森-集结成功与 - 单元 - 测试 - 故障。这也是不好的,因为它只会运行到第一次失败,我想运行所有测试,并有包含所有崩溃的报告(我重新启动每个测试的waxim - 我使用env变量告诉FoneMonkey它应该运行哪个测试)。 –