我们将大型构建分解为许多构建文件,这些构建文件具有主构建,使用ant
目标调用每个构建文件。在单元测试的情况下,我们希望能够运行所有测试(因此生成报告),然后在最后的错误或失败时使整个构建失败。我理解errorProperty
和failureProperty
(doc)可用于将属性设置为true以在构建结束时引用,但不知道如何冒充备份到顶级构建。我们如何从子构建中冒出JUnit失败或错误,但只有在完成所有测试后才会失败?
答案 0 :(得分:1)
一种选择是使用AntUnit:
<antunit>
任务驱动测试,就像<junit>
对JUnit测试一样。在构建文件上调用时,该任务将为该构建文件启动一个新的Ant项目,并扫描名称以“test”开头的目标。对于每个这样的目标,它将
- 执行名为setUp的目标(如果有)。
- 执行目标本身 - 如果此目标依赖于其他目标,则应用正常的Ant规则并首先执行相关目标。
- 执行目标名称tearDown(如果有)。
AntUnit为每个测试的子项目提供摘要,如果其中一个子项目失败,则会使整个构建失败。
<target name="test" depends="compile" description="Run tests.">
<antunit>
<plainlistener loglevel="info" />
<fileset dir="${subprojects.dir}" includes="**/*.xml" />
</antunit>
</target>
<target name="testJUnit">
<junit printsummary="on" fork="true" forkmode="once" showoutput="true">
...
</junit>
</target>