junit4.5+Ant1.7 自动化单元测试

1  执行自动化单元测试的环境

         apache-ant-1.7.1   配置ant_home   ANT_HOME=ANT安装根目录

         junit-4.5.jar    加入到工程类路径中

         jdk1.6.0_02    配置相关java_home,classpath,path

                 JAVA_HOME=jdk安装根目录

                 CLASSPATH=.;%JAVA_HOME%/lib/dt.jar;%JAVA_HOME%/lib/tools.jar

                 PATH=%JAVA_HOME%/bin

2  根据要测试的类编写好单元测试代码

类代码

package com.junit;

/**
 *
 * @author Huo
 */
public class Calculator {

    public int add(int a,int b){
        return a+b;
    }

    public int minus(int a,int b){
        return a-b;
    }
   
}

package com.junit;

/**
 *
 * @author Huo
 */
public class LinkeString {

    public String getlinkeString(String str1,String str2){
        String str="";
        str=str1+str2;
        return str;
    }
}

测试代码

package test.com.junit;

import com.junit.Calculator;
import org.junit.Test;
import static org.junit.Assert.*;

/**
 *
 * @author Huo
 */
public class CalculatorTest {
    /**
     * Test of add method, of class Calculator.
     */
    @Test
    public void testAdd() {
        System.out.println("start add...");
        int a = 10;
        int b = 20;
        Calculator instance = new Calculator();
        int expResult = 30;
        int result = instance.add(a, b);
        assertEquals(expResult, result);
    }

    /**
     * Test of minus method, of class Calculator.
     */
    @Test
    public void testMinus() {
        System.out.println("minus");
        int a = 30;
        int b = 20;
        Calculator instance = new Calculator();
        int expResult = 10;
        int result = instance.minus(a, b);
        assertEquals(expResult, result);
    }

}

package test.com.junit;

import com.junit.LinkeString;
import org.junit.Test;
import static org.junit.Assert.*;

/**
 *
 * @author Huo
 */
public class LinkeStringTest {

    /**
     * Test of getlinkeString method, of class LinkeString.
     */
    @Test
    public void testGetlinkeString() {
        System.out.println("getlinkeString");
        String str1 = "hello";
        String str2 = "world";
        LinkeString instance = new LinkeString();
        String expResult = "helloworld";
        String result = instance.getlinkeString(str1, str2);
        assertEquals(expResult, result);
    }

}

package test.com.junit;

import org.junit.runner.RunWith;
import org.junit.runners.Suite;

/**
 *
 * @author Huo
 */
@RunWith(Suite.class)
@Suite.SuiteClasses({CalculatorTest.class, LinkeStringTest.class})

public class TestAll {
}

3 开始写ant自动化脚本,放在工程的根目录下

 <?xml version="1.0" encoding="GB18030"?>

<!--
配置工程的name属性名称,
default定义运行到名称为unittest的target的任务组
basedir 基准路径
-->
<project name="UnitAntDemo" default="unittest" basedir=".">

       <!--配置基本属性,最好把用到名称,路径在这里定义成全局变量-->
       <property name="src" value="src"/>
       <property name="build" value="build"/>
       <property name="lib" value="lib" />
       <property name="dist" value="dist"/>
       <property name="classpath" location="${build}"/>
     
       <!--配置测试报告的属性 -->
       <property name="report"   value="report"/>
       <property name="report.xml" value="${report}/junit/xml"/>
       <property name="report.html" value="${report}/junit/html"/>

       <!--配置运行时classpath -->
       <path id="classpath.run">
              <pathelement path="${classpath}"/>
              <fileset dir="${lib}">
                     <include name="*.jar"/>
              </fileset>
       </path>

   <!--配置测试时classpath-->
       <path id="classpath.test">
              <path refid="classpath.run"/>
              <path location="${dist}/lib/test-${DSTAMP}.jar"/>
       </path>
     
       <!--任务初始化--> 
       <target name="init" >
              <tstamp/>
              <delete dir="${build}"/>
              <delete dir="${report}"/>
              <delete dir="${dist}"/>
              <mkdir dir="${build}"/>
       </target>
     
       <!--配置编译任务 -->
       <target name="compile" depends="init">
              <javac srcdir="${src}" destdir="${build}">
              <classpath refid="classpath.run" />
              </javac>
       </target>
     
       <!--配置打包任务 -->
       <target name="dist" depends="compile">
              <mkdir dir="${dist}/lib"/>
              <jar jarfile="${dist}/lib/test-${DSTAMP}.jar" basedir="${build}"/>
       </target>
     
       <!--配置运行任务 -->
       <target name="run" depends="compile, dist">
        <java classname="com.junit.TestAll">
            <classpath>
                     <path refid="classpath.run"/>
              </classpath>
        </java>
       </target>
     
       <!--配置JUnit测试,打印测试结果 -->
       <target name="unittest" depends="compile, dist">
              <mkdir dir="${report.xml}"/>
              <mkdir dir="${report.html}"/>
              <junit printsummary="yes" haltonfailure="no">
                     <classpath refid="classpath.run"/>
                     <formatter type="xml"/>
                     <batchtest fork="yes" todir="${report.xml}">
                            <fileset dir="${src}" includes="**/Test*.java"/>
                     </batchtest>
              </junit>
              <junitreport todir="${report.html}">
                     <fileset dir="${report.xml}">
                            <include name="*.xml"/>
                     </fileset>
                     <report format="frames" todir="${report.html}"/>
              </junitreport>
       </target>

</project>

4 开始/运行/cmd   cd 到工程目录下   执行 ant

   产生的单元测试报告在report目录里

发布了20 篇原创文章 · 获赞 6 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/huoran668/article/details/5396264