博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ANT task之Junit、JunitReport
阅读量:6295 次
发布时间:2019-06-22

本文共 6250 字,大约阅读时间需要 20 分钟。

一、ANT任务之Junit:

  学习ANT其实主要是学习ANT的task,ANT众多task中有一个Testing Tasks,它下面有两个任务:Junit和JunitReport,主要用来进行单元测试及生成单元测试报告。

Testing Tasks
Task Name Description

Runs tests from the  testing framework. This task has been tested with JUnit 3.0 up to JUnit 3.7; it won't work with versions prior to JUnit 3.0.

Merges the individual XML files generated by the  task and applies a stylesheet on the resulting merged document to provide a browsable report of the testcases results.

 官方网址:  

<junit>下面可以包含其它元素,例如:

  1、<test>:运行单个TestCase

  2、<batchtest>:运行多个TestCase

  3、<formatter>:定义测试结果输出格式

 还有很多,详细可以参考官方文档。

 

二、项目实例:

由于ant安装比较得简单,网上一搜一大把且现在ecplise基本都带ant,所以本文并未说明如何搭建ant环境。

另外,在eclipse中可以通过:window->show view 来调出Ant视图

1、目录结构如下:

 

2、SimpleCalculation类代码如下:

 
SimpleCalculation

 

3、测试类SimpleCalculationTest代码如下:

 
SimpleCalculationTest

 

4、在项目要目录下添加build.xml(执行一个测试)文件,内容如下:

 
View Code

说明: 

<junit printsummary="true">

<classpath refid="compile.path"/> 
<test name="com.glen.he.SimpleCalculationTest"/>
</junit>

 

<path id="compile.path"> 

<fileset dir="${lib.path}">
<include name="**/*.jar"/>
</fileset>
<pathelement path="${build.path}"/>
</path

我们在<junit〉任务下,使用了编译后的.class文件的目录,还有编译所需的jar包所在的目录。 因为,JUnit任务实际就是为我们运行Test类,而不仅仅是像我们发布Ant文件那样只是javac编译,只需要编译所需的Jar包。我们还需要像java任务那样运.class文件,所以必须包括编译后的.class文件。

 

5、然后把build.xml文件拖到Ant视图中,如下图,双击junit执行即可。

 

6、执行结果:

1 Buildfile: D:\AntTest\build.xml 2 clean: 3    [delete] Deleting directory D:\AntTest\build 4 compile: 5     [mkdir] Created dir: D:\AntTest\build   6     [javac] Compiling 1 source file to D:\AntTest\build 7     8     [javac] Compiling 1 source file to D:\AntTest\build 9 junit:10     [junit] Running com.glen.he.SimpleCalculationTest11     [junit] Tests run: 1, Failures: 0, Errors: 0, Time elapsed: 0.016 sec12 BUILD SUCCESSFUL13 Total time: 1 second

 

三、增强版build.xml

  通过上面第二步,基本可以达到使用ant和junit来进行单元测试,但还远远不够,比如需要批量运行案例,生成报告等,下面会介绍这些内容

 

1、使用formatter属性输出junit信息:

  • 修改build.xml文件,增加第16,49,51,57,58,59行代码
  • 修改build.xml文件,修改53行代码,增加了todir属性,指定xml的输出路径。
1 
2
3
4
5
6 7
8
9
10
11
12
13
14
15
16
17 18
19
20
21
22
23
24
25 26
27
28 29
30
31
32
33
34
35 36
37
38
39
40
41
42
43
44 45
46
47
48
49
50
51
52
53
54
55
56 57
58
59
60 61

执行junit的task后,在项目report目录下生成了一个名为TEST-com.glen.he.SimpleCalculationTest.xml的xml文件。

另外:

<formatter type="xml" usefile="true"/>中type属性值还有plain、brief

这时会输出一个文本文件,提供测试失败时的详细内容以及每个测试的运行统计。

 

 2、批量运行单元测试案例:

  •  修改build.xml文件,把步骤7中的第53行代码替换成下面的58~62行代码;
1 
2
3
4
5
6 7
8
9
10
11
12
13
14
15
16
17 18
19
20
21
22
23
24
25 26
27
28 29
30
31
32
33 34
35
36
37
38
39
40 41
42
43
44
45
46
47
48 49
50
51
52
53
54
55 56
57 58
59
60
61
62
63 64
65 66
67 68
69
70
71
72 73

 

 3、使用<JunitReport>生成测试报告:

  在上面我们已经知道,通过formatter(type=“xml”)输出junit信息时会在指定目录下生成一个Test-类路径名.xml的xml文件,但是这个xml文件看起来很不方便。Ant提供了<junitreport>任务使用XSLT将xml文件转换为HTML报告,该任务首先将生成的XML文件整合成单一的XML文件,然后再对他进行转换,这个整合的文件默认情况下被命名为:TESTS-TestSuites.xml.

  • 修改上面的build.xml文件,增加65~71行,如下:
1 
2
3
4
5
6 7
8
9
10
11
12
13
14
15
16
17 18
19
20
21
22
23
24
25 26
27
28 29
30
31
32
33 34
35
36
37
38
39
40 41
42
43
44
45
46
47
48 49
50
51
52
53
54
55 56
57 58
59
60
61
62
63
64 65
66
67
68
69
70
71
72 73
74 75
76
77
78
79 80

执行后会在指定目录下生成报告文档,打开index.html可以很方便的看到执行的结果。

 1、如下图所示(我又补充了3个案例,并且故意让两个案例失败),显示执行的统计结果:

 

2、点击classes下面的ComplexCalculationTest,可以看到具体某个类里面的单元测试案例执行统计情况以及失败案例的错误信息提示。

 

 

OVER!

 

参考:

 

本文转自贺满博客园博客,原文链接:http://www.cnblogs.com/puresoul/p/4201565.html,如需转载请自行联系原作者。

你可能感兴趣的文章
控件的拖动
查看>>
svn eclipse unable to load default svn client的解决办法
查看>>
Android.mk 文件语法详解
查看>>
QT liunx 工具下载
查看>>
内核源码树
查看>>
Java 5 特性 Instrumentation 实践
查看>>
AppScan使用
查看>>
Java NIO框架Netty教程(三) 字符串消息收发(转)
查看>>
Ucenter 会员同步登录通讯原理
查看>>
php--------获取当前时间、时间戳
查看>>
Spring MVC中文文档翻译发布
查看>>
docker centos环境部署tomcat
查看>>
JavaScript 基础(九): 条件 语句
查看>>
Linux系统固定IP配置
查看>>
配置Quartz
查看>>
Linux 线程实现机制分析
查看>>
继承自ActionBarActivity的activity的activity theme问题
查看>>
设计模式01:简单工厂模式
查看>>
项目经理笔记一
查看>>
Hibernate一对一外键双向关联
查看>>