让Ant更多地讲述失败的JUnit测试

时间:2013-08-06 07:59:20

标签: java ant junit

我的单元测试有问题,而且我不知道为什么。当我在eclipse中正常运行我的单元测试时,它运行得很好。但是当我尝试使用ant构建我的项目时,有一个单元测试失败了。

我从中获得的唯一信息是测试失败,我不知道为什么或在什么线上。

我有办法让蚂蚁告诉我出了什么问题(以及哪一行)?

这是我的单元测试目标:

  <target name="unit.test"
          depends="jar"
          description="'jar', 'compile', and run unit tests">
    <junit printsummary="on" failureproperty="unit.test.failed" timeout="300000">
      <jvmarg value="-Dtest.resource.dir=${resource.dir}/test"/>
      <jvmarg value="-Dresource.dir=${resource.dir}"/>
      <jvmarg value="-Djava.awt.headless=true"/>
      <classpath >
        <pathelement location="${debug.class.dir}"/>
        <pathelement location="${resource.test.dir}"/>
        <pathelement location="${resource.dir}"/>
        <pathelement location="${library.release.dir}/${junit.jar}"/>
        <filelist refid="test.imports"/>
        <filelist refid="imports"/>
      </classpath>
      <formatter type="xml"/>

      <batchtest fork="yes" todir="${release.test.dir}">
        <fileset dir="${source.dir}">
          <include name="test/unit/**/*Test.java" unless="test.unit"/>
          <include name="test/unit/**/${test.unit}Test.java" if="test.unit"/>
          <exclude name="test/unit/**/Abstract*.java"/>
        </fileset>
      </batchtest>

    </junit>
    <fail message="one or more unit test failed" if="unit.test.failed"/>
  </target>

这就是我的控制台中的样子:

  

unit.test:

[junit] Running test.unit.com.bazinga.sensormonitor.IBoxSensorDeviceTest

[junit] Tests run: 9, Failures: 0, Errors: 0, Time elapsed: 4.049 sec

[junit] Running test.unit.com.bazinga.sensormonitor.M2MSensorDeviceTest

[junit] Tests run: 3, Failures: 0, Errors: 0, Time elapsed: 1.586 sec

[junit] Running test.unit.com.bazinga.sensormonitor.RMoniSensorDeviceTest

[junit] Tests run: 21, Failures: 0, Errors: 1, Time elapsed: 5.385 sec

[junit] Test test.unit.com.bazinga.sensormonitor.RMoniSensorDeviceTest FAILED

[junit] Running test.unit.com.bazinga.sensormonitor.SensiteSensorDeviceTest

[junit] Tests run: 7, Failures: 0, Errors: 0, Time elapsed: 1.303 sec

[junit] Running test.unit.com.bazinga.sensormonitor.TBoxSensorDeviceTest

[junit] Tests run: 10, Failures: 0, Errors: 0, Time elapsed: 2.055 sec
     

建立失败

     

/home/user/projects/bazinga/admin/build/ant-library.xml:150:一个或多个单元测试失败

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

也许showoutput=true正是您要搜索的内容?除了记录文件之外,这还会将测试输出发送到控制台。

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

答案 1 :(得分:1)

通常情况下,人们不会在控制台上查看故障详情。标准junit任务收集结果文件中的所有信息(在您的情况下在${release.test.dir}下)。 Junit report task提供了测试结果的html视图。

大部分CI都有