开发者

Run all unit tests with Ant builder

开发者 https://www.devze.com 2023-02-05 19:30 出处:网络
I have a directory with a bunch of JUnit tests in my project. So far I have used separate target for each unit test. For example:

I have a directory with a bunch of JUnit tests in my project. So far I have used separate target for each unit test. For example:

   <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=开发者_C百科"MyProject.classpath"/>
        </junit>
    </target>

This method requires me to change build file every time I add a Unit test.

I want to able able to to run all unit tests in the project with a single Ant builder target.

Is it possible to do?


Yep it is, you need to look at the fileset tag, e.g:

<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>

The important part is the use of fileset and a glob/wildcard pattern to match the names of the tests. Full docs on the junit task with examples here:

http://ant.apache.org/manual/Tasks/junit.html


Yep! We do it using an ant command batchtest. Looks like this:

        <batchtest todir="${junit.report.dir}">
            <fileset dir="${basedir}\test\unit">
                <include name="**/*Test.java" />
            </fileset>
        </batchtest>

Google it, it should sort you out

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号