JUnit测试失败,没有像我期望的那样破坏我的Ant脚本?
我的持续集成服务器运行一个Ant脚本,该脚本的内容如下:
/tests/ant运行测试
我的JUnit测试正在运行,但是有错误:
运行测试:
[echo]运行测试助手。
[回声]运行测试...
[执行]
[exec] com.zedray.stuff.FooBarTest:...。
[exec] com.zedray.stuff.FooBarTest:..... INSTRUMENTATION_RESULT:shortMsg =您的代码中存在某些错误。
[exec] INSTRUMENTATION_RESULT:longMsg = java.security.InvalidParameterException:您的代码中存在一些错误
[exec] INSTRUMENTATION_CODE:0
错误是可以的,但我的构建脚本仍在继续(最终将损坏的应用程序发布到测试人员中-太糟糕了!)。我期望仪器会引发构建错误,因此我的连续集成服务器(在本例中为TeamCity)意识到出了点问题并报告了构建失败。在相关的宏定义中已经设置了“failonerror”,所以我不确定还能做什么?
/tests/build.xml
运行测试...
有关如何解决此问题的任何想法/建议?
问候
标记
最佳答案
ant JUnit task默认运行所有测试。有两种解决方案。
最简单的解决方案是将haltonerror
属性设置为true,并且该构建将在第一次测试失败时失败。
稍微多一些(根据我的喜好)是设置failureProperty
,以便运行所有测试。这使您知道有多少测试失败,而不仅仅是第一个失败的测试。这需要更多的 Ant 工作,因为您需要在junit测试之后添加一行,如下所示:
<fail message="tests failed" if="failureProperty"/>