ant junit任务不报告细节

时间:2011-04-02 05:10:06

标签: java unit-testing junit ant

我尝试用JUnit测试编写一个蚂蚁,但得到以下结果:

unittest:
    [junit] Running com.mytest.utiltest
    [junit] Tests run: 1, Failures: 0, Errors: 1, Time elapsed: 0 sec
    [junit] Test com.mytest.utiltest FAILED

它只显示没有打印细节的错误,我在build.xml中指定了以下参数 也尝试从ant -v or ant -debug开始,但没有得到任何运气。有人可以帮忙吗?

<junit printsummary="yes" showoutput="true">

ant 1.8.2,sun jdk1.6.0_20,junit 4.8.2

为了缩小问题范围,我创建了一个单独的项目 这是我的build.xml

<project name = "TestPrj" default="unittest" basedir = ".">

    <target name="unittest" >
        <junit printsummary="yes" showoutput="true" >
            <classpath>
                <pathelement location="./junit-4.8.2.jar"/>
                <pathelement location="./ant-junit4.jar"/>
            </classpath>
            <test name = "com.mytest.unittest.SimpleTest" todir="."/>
        </junit>
    </target>

</project>
下面的

是simpletest.java

package com.mytest.unittest;

import junit.framework.TestCase;


public class SimpleTest extends TestCase{
    public void testFirst()
    {
        assertTrue(true);
    }

}

C:\ TestPrj&GT;蚂蚁

Buildfile: C:\TestPrj\build.xml

unittest:
    [junit] Running com.mytest.unittest.SimpleTest
    [junit] Tests run: 1, Failures: 0, Errors: 0, Time elapsed: 0 sec

BUILD SUCCESSFUL
Total time: 0 seconds

C:\ TestPrj&GT; DIR

 Directory of C:\TestPrj

04/02/2011  02:00 PM    <DIR>          .
04/02/2011  02:00 PM    <DIR>          ..
04/02/2011  01:56 PM               280 .classpath
04/02/2011  01:54 PM               519 .project
04/02/2011  02:00 PM             7,120 ant-junit4.jar
04/02/2011  02:00 PM               403 build.xml
04/02/2011  01:55 PM    <DIR>          com
11/17/2010  05:36 PM           237,344 junit-4.8.2.jar
               5 File(s)        245,666 bytes
               3 Dir(s)  28,451,311,616 bytes free

为什么没有生成JUnit结果/详细信息/报告? 那么在我真实的失败案例中,我无法解决我的问题?

2 个答案:

答案 0 :(得分:40)

您必须在formatter任务中使用junit元素。格式化程序默认会创建一个报告文件,但您可以强制它在屏幕上打印结果。您可以使用两个格式化程序:一个用于输出到屏幕,另一个用于输出到文件。

请注意,junit任务中不再需要属性printsummary="yes"showoutput="true"。格式化器现在正在处理输出。

<project name = "TestPrj" default="unittest" basedir = ".">

<target name="unittest" >
    <junit>
        <classpath>
            <pathelement location="./junit-4.8.2.jar"/>
            <pathelement location="./ant-junit4.jar"/>
        </classpath>
        <formatter type="plain" usefile="false" /> <!-- to screen -->
        <formatter type="plain" /> <!-- to file -->
        <test name = "com.mytest.unittest.SimpleTest" todir="."/>
    </junit>
</target>

</project>

阅读ant手册中的junit页面以获取更多信息。

答案 1 :(得分:1)

你可以在这里发布从build.xml调用junit的片段吗?构建失败可能有几个原因。另外,请发布您要测试的测试用例。

编辑:您是否需要静态测试?

public class utilTest extends TestCase {
  public void testfun() {
    assertTrue(true);
  }
}

编辑:尝试使用参数outfile

<target name="unittest">
    <junit printsummary="yes" showoutput="true">
        <classpath>
            <pathelement location="./junit-4.8.2.jar"/>
            <pathelement location="./ant-junit4.jar"/>
        </classpath>

        <formatter type="plain" />

        <test name="com.mytest.unittest.SimpleTest" outfile="./testresult" />
    </junit>
    <fail message="test failed" if="test.failure" />
</target>