使用ANT运行jUnit - 如何在不使用@Suite的情况下执行所有测试?

时间:2011-06-10 05:11:23

标签: ant junit

我想在/ test目录中执行所有测试,而不使用

等注释
@Suite.SuiteClasses( ....)

过去我有一个单独的类,它正在调用许多其他类来测试它们。这种方法已不再可接受。

我有一个/ test目录,在其下面我有许多包,每个包含几个测试。

在我目前的ANT脚本中,我有:

<target name="compileTest" depends="compile" description="compile jUnit">
    <javac srcdir="${test}" destdir="${bin}" includeantruntime="true" />
</target>

接着是

<target name="test" depends="compileTest">
    <junit printsummary="yes" fork="no" haltonfailure="no">
        <classpath location="${bin}" />
        <formatter type="plain" />
    </junit>
</target>

过去,我有

<test name="MyCollectionOfTests" />

我宁愿不再这样做了。

我缺少什么?请指教。

1 个答案:

答案 0 :(得分:3)

您可以使用嵌套的batchtest。例如:

<junit printsummary="on"
       fork="on"
       dir="${test.build}"
       haltonfailure="false"
       failureproperty="tests.failed"
       showoutput="true">
  <classpath>
    <path refid="tests.classpath"/>
 </classpath>
 <batchtest todir="${test.report}">
    <fileset dir="${test.gen}">
      <include name="**/Test*.java"/>
    </fileset>
    <fileset dir="${test.src}">
      <include name="**/Test*.java"/>
      <exclude name="gen/**/*"/>
    </fileset>
  </batchtest>
</junit>

最简单的形式是,你可以简单地添加一个嵌套的:

<batchtest todir="report">
  <fileset dir="test"/>
</batchtest>

junit来电。