我的项目中有一堆JUnit测试的目录。到目前为止,我已经为每个单元测试使用了单独的目标例如:
<target name="MyTest">
<mkdir dir="${junit.output.dir}"/>
<junit fork="yes" printsummary="withOutAndErr">
<formatter type="xml"/>
<test name="tests.MyTest" todir="${junit.output.dir}"/>
<classpath refid="MyProject.classpath"/>
</junit>
</target>
这种方法要求我每次添加单元测试时都要更改构建文件。
我希望能够使用单个Ant构建器目标在项目中运行所有单元测试。
有可能吗?
答案 0 :(得分:9)
是的,你需要查看文件集标签,例如:
<junit printsummary="yes" haltonfailure="yes">
<classpath>
<pathelement location="${build.tests}"/>
<pathelement path="${MyProject.classpath}"/>
</classpath>
<formatter type="xml"/>
<batchtest fork="yes" todir="${reports.tests}">
<fileset dir="${src.tests}">
<include name="**/*Test*.java"/>
<exclude name="**/AllTests.java"/>
</fileset>
</batchtest>
</junit>
重要的部分是使用fileset和glob / wildcard模式来匹配测试的名称。关于junit任务的完整文档以及示例:
答案 1 :(得分:3)
是的!我们使用ant命令batchtest来完成它。看起来像这样:
<batchtest todir="${junit.report.dir}">
<fileset dir="${basedir}\test\unit">
<include name="**/*Test.java" />
</fileset>
</batchtest>
谷歌,它应该排除你