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目录里