JUnit自动化
无论如何,在你给下一个功能编码前,你必须有个测试证明你的新的功能有效。在你给新的功能编码完成之后,你可以为前边的功能运行测试。这样可以保证新的进展不会对旧的代码产生影响。
如果你的测试很严格,为了帮助你设计新的代码并且保证不与老的代码冲突,你就必须把持续的单元测试当作你开发周期的一个普通的部分。你还必须可以任何时候不费工夫地自动运行这些测试。
3.1 利用Ant进行测试
1.下载并安装ant,配置ant环境:
ANT_HOME:E:\devtool\eclipse_j2ee_europa\plugins\org.apache.ant_1.7.0.v200706080842
PATH:%ANT_HOME%\bin;
cass_path: %ANT_HOME%\lib;
2.在工程的根目录下创建build.xml构建文件
<?xml version="1.0" encoding="UTF-8"?>
<project name="oohla" >
<property file="build.properties"/>
<property name="src.dir" location="src"/>
<property name="src.java.dir" location="${src.dir}/main/java"/>
<property name="src.test.dir" location="${src.dir}/test/java"/>
<property name="target.dir" location="target"/>
<property name="target.class.java.dir" location="${target.dir}/classes"/>
<property name="target.class.test.dir" location="${target.dir}/test-classes"/>
<property name="target.report.dir" location="${target.dir}/report"></property>
<echo message="${src.java.dir}"/>
<!-- 编译src/main/java下文件 -->
<target name="compile.java">
<mkdir dir="${target.class.java.dir}" />
<javac destdir="${target.class.java.dir}" >
<src path="${src.java.dir}"/>
</javac>
</target>
<!--编译src/test/java下文件-->
<target name="compile.test" depends="compile.java">
<mkdir dir="${target.class.test.dir}" />
<javac destdir="${target.class.java.dir}">
<src path="${src.test.dir}"/>
<classpath>
<pathelement location="${target.class.java.dir}"/>
</classpath>
</javac>
</target>
<!-- 编译src/test/java和src/main/java下文件 -->
<target name="compile" depends="compile.java,compile.test"></target>
<!-- 运行测试用例 -->
<target name="test" depends="compile">
<mkdir dir="${target.report.dir}"/>
<junit printsummary="yes" haltonerror="no" haltonfailure="no" fork="yes">
<formatter type="plain" usefile="false" />
<formatter type="xml"></formatter>
<!-- <test name="com.doone.util.TestAll" todir="${target.report.dir}"/> -->
<batchtest todir="${target.report.dir}">
<fileset dir="${src.test.dir}">
<include name="**/*Test.java"></include>
<exclude name="**/Test*All.java"></exclude>
</fileset>
</batchtest>
<classpath>
<pathelement location="${target.class.java.dir}"></pathelement>
<pathelement location="${target.class.test.dir}"></pathelement>
</classpath>
</junit>
</target>
<echo message="${target.report.dir}"/>
<!-- 生成报告文件 -->
<target name="report" depends="test">
<mkdir dir="${target.report.dir}/html"></mkdir>
<junitreport todir="${target.report.dir}">
<fileset dir="${target.report.dir}">
<include name="TEST-*.xml"/><!-- TEST必须大写 -->
</fileset>
<report todir="${target.report.dir}/html" />
</junitreport>
</target>
</project>
3.创建build.xml的资源文件build.properties
4.eclipse中运行build.xml(图中的显示的targets就是build.xml文件中的target)
注:也可在dos下运行自动测试:
在oohla/项目目录下输入:ant report
5.结果
控制台会打印出测试结果信息
同时在工程的target目录下生成report文件
其中target为report生成TESTS-TestSuites.xml和html文件,打开html中的index.html页面
页面中的元素:
1. Packages 自动化所涉及的包(点击列表中的某个链接可查看包下每个类的运行结果信息)
2. Classes 自动化所涉及的类(点击列表中某个链接可查询此类运行结果的详细信息)
3. Summary 运行结果信息
3.2 利用maven运行测试
1.下载并安装maven
2.创建maven工程
3.下载maven 的surefire-report插件(用于以htmlde形式直观的显示测试结果信息)
方法:在pom.xml中加入下面代码
<reporting>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-report-plugin</artifactId>
</plugin>
</plugins>
</reporting>
4.下载maven site(用于解析生成运行结果信息的xml文件为直观化的html文件)
在dos下,在oohla/项目目录下输入:mvn site
5.运行测试用例
在dos下,在oohla/项目目录下输入:mvn test
或点击maven test 如下图