ant junit task does not report detail

23,622

Solution 1

You have to use a formatter element inside the junit task. The formatter will create a report file by default, but you can force it to print the results on screen. You can use two formatters: one for output to screen, another for output to file.

Note that you no longer need the attributes printsummary="yes" and showoutput="true" in the junit task. The formatter is taking care of output now.

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

Read the junit page in the ant manual for more information.

Solution 2

Could you post the snippet which calls junit from build.xml here? There can be several reasons why the build fails. Also, please post the testcase which you are trying to test.

EDIT: Do you need a static for a test?

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

EDIT: Try using the argument 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>
Share:
23,622
hetaoblog
Author by

hetaoblog

http://www.chinatech.us, lots of chinese tech, stock and company news http://www.hetaoblog.com, this is my chinese tech blog

Updated on July 24, 2022

Comments

  • hetaoblog
    hetaoblog almost 2 years

    I tried to write an ant with JUnit test, but get below result:

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

    it just shows error without print details, I specify below parameter in build.xml also tried to start with ant -v or ant -debug, but did not get any luck. Can anyone help?

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

    ant 1.8.2, sun jdk1.6.0_20, junit 4.8.2

    to narrow down the problem, I created a seperate project this is my 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>
    

    below is simpletest.java

    package com.mytest.unittest;
    
    import junit.framework.TestCase;
    
    
    public class SimpleTest extends TestCase{
        public void testFirst()
        {
            assertTrue(true);
        }
    
    }
    

    C:\TestPrj>ant

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

    Why there's not a JUnit results/detail/report generated? So that in my real case of failure, i can not troubleshoot my questions?