如果存在断言错误,则Junit报告不会生成报告

时间:2012-06-08 10:32:02

标签: unit-testing ant junit reporting automated-tests

如果存在断言错误,则Junit报告不会生成报告 待测试的课程

public class Math {

    static public int add(int a, int b) {

        return a + b;
    }

    static public int multiply ( int a, int b) {
        if(a==0&&b==0)
            return 0;;
        return a * b;
    }
}

Junit测试课

import junit.framework.*;

public class TestMath extends TestCase { 

  protected void setUp() { 

    // put common setup code in here
   }

  protected void tearDown() {

    // put common cleanup code in here
  }

  public void testAdd() {
    int num1 = 3;
    int num2 = 2;
    int total = 5;
    int sum = 0;
    sum = Math.add(num1, num2);
    assertEquals(sum, total);
  }

  public void testMulitply() {

    int num1 = 3; 
    int num2 = 7; 
    int total = 21;
    int sum = 0;
    sum = Math.multiply(num1, num2);
    assertEquals("Problem with multiply", sum, total);


    num1 = 5;
    num2 = 4;
    total = 20;
    sum = Math.multiply(num1, num2);
    assertEquals("Problem with multiply", sum, total);

  }
  public void testv(){
     Assert.assertEquals(1, Math.multiply(0, 0));
  }

}

我正在使用junit报告来生成报告

问题是,如果断言失败,则报告未生成,Ant Build失败。我的假设是,如果断言失败,它应该在失败中列出而不是在构建结果中出错。

Ant XML

<project name="SampleJUnitTests" default="dist" basedir=".">
    <description>
        Sample JUnit Tests
    </description>
  <!-- set global properties for this build -->

  <property name="project_name" value="junitSamples"/>
  <property name="src" location="src"/>
  <property name="build" location="bin"/>
  <property name="dist"  location="dist"/>
  <property name="lib"  location="lib"/>
  <property name="res"  location="res"/>
  <property name="reports" location="reports"/>

  <!-- the names of various distributable files -->
  <property name="jar_name" value="${project_name}.jar"/>
  <property name="war_name" value="${project_name}.war"/>

    <!-- top level targets -->

  <target name="compile" depends="init" description="compile the source code " >
        <javac srcdir="${src}" destdir="${build}">  
            <classpath>
                <fileset dir="lib">
                    <include name="**/*.jar"/>
                </fileset>
            </classpath>
        </javac>

  </target>

  <target name="dist" depends="compile" description="generate the distributable files " >

    <!-- Put everything in ${build} into the MyProject-${DSTAMP}.jar file -->
    <jar jarfile="${dist}/${jar_name}" basedir="${build}"/>

  </target>

  <target name="clean"
        description="clean up" >
    <!-- Delete the ${build} and ${dist} directory trees -->
    <delete dir="${build}"/>
    <delete dir="${dist}"/>
    <delete dir="${reports}"/>
  </target>

    <target name="run-tests" depends="compile" description="run your test suite" >
        <junit printsummary="yes" haltonfailure="yes" showoutput="yes" >
            <classpath>
                <pathelement path="${build}"/>
                <fileset dir="lib">
                    <include name="**/*.jar"/>
                </fileset>
            </classpath>            

          <batchtest fork="yes" todir="${reports}/raw/">
            <formatter type="xml"/>
            <fileset dir="${src}">
              <include name="**/*Test*.java"/>
            </fileset>
          </batchtest>
        </junit>    
    </target>

  <target name ="test" depends="run-tests">
        <junitreport todir="${reports}">
          <fileset dir="${reports}/raw/">
            <include name="TEST-*.xml"/>
          </fileset>
          <report format="frames" todir="${reports}/html/"/>
        </junitreport>
  </target>

  <target name ="run" depends="" description="if this project can be run, run it" >

  </target>

    <!-- supporting targets -->

     <target name="init" description="initialize the build environment" >
    <!-- Create the time stamp -->
    <tstamp/>
    <!-- Create directory structures -->
    <mkdir dir="${build}"/>
    <mkdir dir="${lib}"/>
    <mkdir dir="${dist}/lib"/>
    <mkdir dir="${reports}"/>
    <mkdir dir="${reports}/raw/"/>
    <mkdir dir="${reports}/html/"/>
  </target>

  <target name="all" depends="clean, test">

  </target>

</project>

我的要求是如果断言失败它应该显示失败?我需要做什么 ?

1 个答案:

答案 0 :(得分:2)

Tharani在评论中已经回答了这个问题......回答它是为了解决这个问题......

更改haltonfailure =“no”的值,它可以正常工作......