Java 当任何JUnit测试失败时,如何让构建失败?

Java 当任何JUnit测试失败时,如何让构建失败?,java,ant,junit,hudson,Java,Ant,Junit,Hudson,我们使用最新的Hudson版本和ANT脚本来构建我们的项目。我们已经安装了几个额外的插件(如pmd、findbugs等),以便在出现大量错误时使构建变得不稳定。由于我们通常高于pmd的相关数字,所以大多数构建都是不稳定的 因此,有时我们注意到太晚了,有几个JUnit测试失败了,因为我们已经习惯了,构建是不稳定的。我知道在PMD脚本中增加允许的错误数量是一个(临时)解决方案,也可以修复大部分错误,但我们更喜欢一个解决方案,当junit测试失败时,我们可以让构建失败,或者至少给它一个特殊的自定义状态

我们使用最新的Hudson版本和ANT脚本来构建我们的项目。我们已经安装了几个额外的插件(如pmd、findbugs等),以便在出现大量错误时使构建变得不稳定。由于我们通常高于pmd的相关数字,所以大多数构建都是不稳定的

因此,有时我们注意到太晚了,有几个JUnit测试失败了,因为我们已经习惯了,构建是不稳定的。我知道在PMD脚本中增加允许的错误数量是一个(临时)解决方案,也可以修复大部分错误,但我们更喜欢一个解决方案,当junit测试失败时,我们可以让构建失败,或者至少给它一个特殊的自定义状态,这样我们会自动得到通知,我们的测试出了问题

你知道这个问题的解决方法吗?

试试这个:

<junit haltonfailure="no" failureproperty="test.failed" ... >
...
</junit>
<fail message="Test failure detected, check test results." if="test.failed" />

...

这将运行所有测试,如果一个测试失败,将导致生成失败。或者,如果您想在测试失败后停止构建,请将haltonfailure属性更改为yes。

这可能对您没有帮助,但Maven的默认行为是测试失败会终止构建。我们考虑在未来的项目中使用Maven,这是一个有趣的信息,谢谢。但事实上,对于目前的问题,我需要一个不同的解决方案。