这篇文章的目的就是用来记录一下java单元测试报告产生的过程,防止时间久忘记。

先讲直接使用eclipse去搭建一个测试环境的流程:

java 自动生成get set java 自动生成报告 多个_Test

上面是一个简单例子的搭建,src中存放源码,test中存放测试代码,注意添加test文件夹后请把它add到build_path中。

接着我们来看一下Calculator.java和CalculatorTest.java

package com.elastos;
public class Calculator {
public String one() {
return "One";
}
public String two() {
return "Two";
}
}
package com.elastos.test;
import junit.framework.TestCase;
import org.junit.Test;
import com.elastos.Calculator;
public class CalculatorTest extends TestCase {
private Calculator calculator = new Calculator();
@Test
public void testOne() {
assertEquals("One", calculator.one());
}
@Test
public void testTwo() {
assertEquals("One", calculator.two());
}
}

这里有个问题值得说一下,我使用了JUnit4,JUnit4有个最大的特定就是不用继承TestCase,使用Annotation就OK了。于是我就这么干了,结果发现:

No tests found in com.elastos.test.CalculatorTest

junit.framework.AssertionFailedError: No tests found in com.elastos.test.CalculatorTest

找不到测试用例,于是我又让它继承了TestCase,这样一来就立马OK了。继承TestCase之后,[email protected],不用也可以。

(个人猜想Ant可能会先去判断测试类是否实现了Test接口。有,就提取测试用例;没有,就直接跳过,抛出异常。这里先把猜想放这里,待有时间好好研究一下。

如果对Test接口有疑惑,可以阅读下我的另一篇文章http://www.voidcn.com/article/p-wfrcimok-cb.html)。

下面我们就开始使用Ant执行测试用例并且输出测试报告。

右击项目文档,选择export,就会弹出如下对话框:

java 自动生成get set java 自动生成报告 多个_ant接口自动化 junit_02

选择建立Ant Buildfile就会在工程目录下产生一个build.xml。当然,这个文件也可以自己手动去创建,做个自定义的build.xml。

build.xml产生后,右击该文件,然后点击Run As Ant Build就好了。如下:

java 自动生成get set java 自动生成报告 多个_java 自动生成get set_03

上面我勾选了三项,分别依次进行了编译、运行CalculatorTest、输出测试报告。

那么这都是怎么在build.xml中实现的呢?

上面就代表build,依赖build-subprojects,build-project

build-subprojects没干什么事情,我们来看build-project,它依赖于init,编译src、test下代码放到bin文件中。

新建一个bin文件夹,然后把src、test下所有非java结尾的文件连带目录一起拷贝到bin/文件夹下面。

编译完成后,就去执行CalculatorTest

新建junit文件夹存放执行结果。fork="yes"表示在一个独立的VM进程中运行tests。

生成测试报告放在junit文件夹中,实际上就提取TEST-*.xml中的一些信息放到index.html。

打开index.html,就是你想要的报告。如下:

java 自动生成get set java 自动生成报告 多个_ant接口自动化 junit_04