ant junit任务不报告细节

het*_*log 23 java ant junit unit-testing

我试着用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
Run Code Online (Sandbox Code Playgroud)

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

<junit printsummary="yes" showoutput="true">
Run Code Online (Sandbox Code Playgroud)

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>
Run Code Online (Sandbox Code Playgroud)

下面是simpletest.java

package com.mytest.unittest;

import junit.framework.TestCase;


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

}
Run Code Online (Sandbox Code Playgroud)

C:\ TestPrj>蚁

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
Run Code Online (Sandbox Code Playgroud)

C:\ TestPrj> 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
Run Code Online (Sandbox Code Playgroud)

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

les*_*ana 40

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

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

<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>
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请阅读ant手册中的junit页面.

  • 这可以工作,但是一旦所有测试都运行完毕,它就会将结果输出到屏幕上.我希望看到它们在运行时运行,以便我可以监控进度.你知道怎么做的? (2认同)