之前的两篇《Junit和Ant入门》文章都是分开介绍两样工具的使用,这篇文章开始讲解如何将两项工具混合起来使用,如果是初学者,建议先看之前的两篇文章《Junit和Ant入门(1) JUnit》 和 《Junit和Ant入门(2) Ant 》 。由于整个配置还是挺麻烦的,所以更需要我们循序渐进。
为了让大家能更好地明白,我也是用例子讲解。同时也把自己遇到的问题,写出来。
具体步骤
1. 导入Junit的jar包
下载地址:http://download.csdn.net/source/2636855
说明:虽然MyEclipse中是自带有JUnit的jar包的,但由于在使用Ant进行编译测试时需要用到JUnit的jar包,为防止冲突,我们导入自己需要Jar包
具体的步骤:
1)在工程中新建一个文件夹jars,将Junit的jar包拷贝到jars文件夹下
2)右键工程——build path——add external archives ——选择在jars文件下的Junit的jar包
2. 编写代码
具体的工程结构
源代码:
Main.java
public class Main {
private String name = "";
public Main(String _name){
name = _name;
}
public String info(){
return name;
}
}
MainTest.java
import com.taobao.zhujiadun.code.Main;
import junit.framework.TestCase;
public class MainTest extends TestCase{
public void testMain(){
Main m = new Main("zhujiadun");
assertEquals("zhujiadun",m.info());
}
}
3. 配置ant Build.xml文件
右键. Export-> General -> Ant Buildfiles .点Next... 生成build.xml
4. Build.xml
<!-- properies -->
<property name="src.dir" value="src" />
<property name="classes.dir" value="class" />
<property name="lib.dir" value="jars" />
<property name="dist.dir" value="dist" />
<property name="doc.dir" value="doc" />
<property name="junit-report" value="junit-report" />
<property name="cover-report" value="cover-report" />
<!-- 定义classpath,由于我涉及到单元测试的jar包了,所以我需要将包导进来 -->
<path id="master-classpath">
<fileset file="${lib.dir}/*.jar" />
<pathelement path="${classes.dir}"/>
</path>
<!-- 初始化任务 -->
<target name="init">
</target>
<!-- 编译 -->
<target name="compile" depends="init" description="compile the source files">
<mkdir dir="${classes.dir}"/>
<javac srcdir="${src.dir}" destdir="${classes.dir}" >
<!--设置了一个classpath,这点对于要使用到其他jar包的很重要-->
<classpath refid="master-classpath"/>
</javac>
</target>
<!-- 测试 -->
<target name="test" depends="compile" description="run junit test">
<mkdir dir="${junit-report}"/>
<junit printsummary="yes" >
<classpath refid="master-classpath" />
<formatter type="plain"/>
<batchtest todir="${junit-report}">
<fileset dir="${src.dir}">
<include name="**/*Test.java"/>
</fileset>
<formatter type="xml"/>
</batchtest>
</junit>
<junitreport todir="${junit-report}">
<fileset dir="${junit-report}">
<include name="TEST-*.xml"/>
</fileset>
<!-- 带有框架,可以用noframes选不带框架 -->
<report format="noframes" todir="${junit-report}"/>
</junitreport>
</target>
</project>
5. 运行结果
控制台输出信息:
具体工程:
注意红色圈圈内的部分