用Ant运行单元测试

时间:2020-01-09 10:35:39  来源:igfitidea点击:

我们可以使用Apache Ant(一种开源构建工具)运行JUnit单元测试。在本文中,我将简要向我们展示如何操作。我不会详细解释Ant。我希望我们已经了解蚂蚁。如果没有,请访问Ant网站(请参阅上面的链接)并进行研究。

Ant有一个称为" junit"的内置任务,可以运行单元测试。这是一个简单的示例:

<target name="unit-test-1" >

  <junit printsummary="yes" haltonfailure="yes">

    <classpath>
      <pathelement location="${project.class.path}"/>
      <pathelement location="${build.tests}"/>
      <pathelement path="${java.class.path}"/>
    </classpath>

    <test name="com.Hyman.test.MyUnitTest"
             haltonfailure="no" outfile="result">

      <formatter type="plain"/>
      <formatter type="xml"/>

    </test>

  </junit>
</target>

classpath元素中,添加项目代码和测试代码的输出位置。换句话说,就是我的编译代码和测试代码所在的目录。

test元素中,我声明要执行的单元测试类。我还在outfile属性中指定了输出报告的名称("结果")。

嵌套在" test"元素内,我放置了两个" formatter"元素。这些格式化程序定义在test元素中指定的输出报告的输出格式。由于我添加了两个格式化程序,因此将生成两个输出报告。一种在"普通"文本中,另一种在" xml"中。

批测试运行

在前面的示例中,仅执行了一个测试。也可以在Ant脚本中执行一批测试,而不必显式指定每个单元测试。

这是一个批处理单元测试示例:

<target name="unit-test-1" >

    <mkdir dir="${reports.tests}"/>

    <junit printsummary="yes" haltonfailure="yes">
      <classpath>
        <pathelement location="${project.class.path}"/>
        <pathelement location="${build.tests}"/>
        <pathelement path="${java.class.path}"/>
      </classpath>

      <formatter type="plain"/>
      <formatter type="xml"/>

      <batchtest fork="yes" todir="${reports.tests}">
        <fileset dir="${src.test}">
          <include name="**/*Test*.java"/>
        </fileset>
      </batchtest>

    </junit>

</target>

类路径的内容与第一个示例中的相同。

请注意,现在如何将这两个formatter元素移至batchtest元素之外。现在,这些格式化程序用于在junit元素内指定的所有测试元素。

批处理任务是执行工作的任务。这里,需要注意的有趣属性是" todir"属性。此属性指定要将测试报告文件输出到的目录。

在" batchtest"元素内嵌套了一个标准的" fileset"元素,该元素告诉要包含哪些Java文件(意味着要执行哪些测试)。在此示例中,我以递归方式执行文件名中具有文本" Test"和" .java"的所有文件,而不管它们位于哪个目录中。