Gtest在测试失败时不写结果xml文件[jenkins]

时间:2014-03-14 20:24:02

标签: ios jenkins googletest

我使用shell脚本

在Jenkins中调用我们的iOS gtest套件
#!/bin/sh
pkill -a "iPhone Simulator"
ios-sim launch ${WORKSPACE}/source/apple/build/Debug-iphonesimulator/MyAppTest.app --args --gtest_output=xml:${WORKSPACE}/JUnitTestResultsIOS.xml

exit $?

这总是成功运行测试,当测试通过时,xml文件会按预期生成。但是,当测试失败时,不会生成任何xml文件,并且执行shell命令"执行shell命令"构建步骤终止但不会使作业失败。我回复了退出代码,即使测试失败,它也会返回0。

这对我来说更加困惑,因为我们在同一个作业中有一个基本相同的脚本,用于在我们的OSX版本上运行测试。这总是写入xml,并在测试失败时成功地使作业失败。

这种行为似乎是完全随意的,关于我们配置的一切看起来都应该如此。我错过了什么?

谢谢!

1 个答案:

答案 0 :(得分:2)

这里有两件事在起作用。

首先,我们启用了break_on_failure gtest选项,这在本地计算机上运行测试时效果很好但在Jenkins中没有用,所以我们在构建计算机上禁用了它。

第二个问题是我们如何使用退出代码。由于ios-sim launch ...总是成功,我们总是得到退出代码0,无论测试是通过还是失败。我最终使用grep来确定生成的xml文件是否指示任何失败,并基于此生成退出代码。