1.Junit.jar(和jakarta-ant-optional.jar 不是必须) 放在ant_home/lib中,用于支持build.xml中的<junit>标签

2.修改build.xml,在任意两个target之间添加一个新的target, 配置name和depends属性,name属性是必须的,depends是依赖的另一个target(如下,依赖compileBase,copyProperties分别是编译.java文件和copy配置文件的garget).

3.在新的target中添加<junit>标签,添加测试任务,在<junit>标签中添加<classpath>标签,配置.class文件的目录和依赖.jar文件的目录(将junit和mockito的jar指  导classpath中)

4.添加<batchtest>标签(<test>标签执行单个测试用例),定义多个测试文件,指定<include>标签的name属性为“**/*Test.class”(测试类在创建时依据命名规范,以Test.class结尾)

<test name="com.glen.he.SimpleCalculationTest"/>

5.在<batchtest>标签内部添加<formatter>标签,将测试结果生成指定文件的测试结果

brief:以文本格式提供测试失败的详细内容;
plain:以文本格式提供测试失败的详细内容以及每个测试的运行统计;
xml:以xml格式提供扩展的详细内容,包括正在测试时的Ant特性,系统输出,以及每个测试用例的系统错误.

6.<junitreport>导出测试结果到一个.xml文件中生成HTML页面(如果<formatter>标签不在<batchtest>标签内部,生成的xml文件为空,并导致HTML页面打开没有数据,HTML页面的数据,依赖于xml文件)

7.<delete>删除测试结果

8.在build.xml文件中找一个合适的target在depends中添加测试的target的name值,用“,”分隔(英文逗号)。所选的target必须在编译.java文件的target执行之后执行的target。

<target name="test" depends="compileBase,copyProperties">

<property name="testReport" value="./deployment/testReport"/>

<delete dir="${testReport}" />

<mkdir dir="${testReport}" />

<!—执行测试-->

<junit>

<classpath>

<fileset dir="./lib/">

<include name="**/*.jar"/>

</fileset>

<pathelement location="${base.classesdir}/${classes}"/>

</classpath>

<batchtest todir="${testReport}">

<formatter type="xml" usefile="true"/>

<fileset dir="${base.classesdir}/${classes}">

<include name="**/*Test.class"/>

</fileset>

</batchtest>

</junit>

<!—导出测试报告-->

<junitreport todir="${testReport}">

<fileset dir="${testReport}">

<include name="Test-*.xml" />

</fileset>

<report format="frames" todir="${testReport}"/>

</junitreport>

<!--删除xml的测试结果

<delete dir="${testReport}">

<include name="*.xml" />

</delete> -->

</target>

注:如果配置没有出错,但是生成HTML页面出错,可以查看一下xalan支持情况。

Xalan ,将测试结果导出到HTML统计页面,由于xalan对jdk1.4上支持问题,需要在java_home/jre/lib/endorsed中添加xalan的全部jar包(我的jdk版本是1.5.0_14,不需要导入额外的xalan包)

ANT编译时执行Junit测试的更多相关文章

  1. 如何确定C#代码是在编译时执行还是在运行时执行

    突然想起那个"switch..case..."的case标签都可以判断哪些类型... 就先搞了一个错误的demo... class Program { static void Ma ...

  2. ant编译时提示一大堆软件包不存在的问题

    ant编译时提示一大堆软件包不存在的问题  解决方案: 把项目的 lib 里的jar包 放的 jdk的jre的ext的目录下 例如 java home 是 D:JavaEEJavajdk1.8.0_1 ...

  3. 【问题】用ant编译时,提示编码utf为不可映射字符

    分析:eclipse默认的编码为gbk,而ant里的build.xml文件里定义的为utf-8格式.两者格式不统一. 建议:将工程的编码改成utf-8的格式,一般java工程也建议为utf-8格式.

  4. 配置ant编译时的jdk版本

    如下图,选择对应的sdk版本:

  5. Junit测试代码时出现initializationError 错误

    首先代码没有错误,执行Junit测试时出现以上错误.上网查资料发现少了包 从网上下载了一个jar包解决了hamcrest-core-1.3.jar 现在下载包搜索的好多坑,有的网站必须注册才能下载,而 ...

  6. 使用ant编译项目技能

    ant编译时指定jdk的版本号 系统的jdk版本号是1.6,而项目使用的jdk版本号是1.5.所以在编译时须要指定jdk的版本号为1.5,能够使用以下的方法为javac 任务指定fork和execut ...

  7. GO编译时不避免引入外部动态库的解决方法

    简介 最近碰到一个问题,有一个流量采集的组件中使用到了github.com/google/gopacket 这个库,这个库使用一切正常,但是唯独有一个缺点,编译后的二进制文件依赖于libpcap.so ...

  8. MAVEN打包时跳过Junit测试

    我们知道,通常情况下使用maven package命令打包时,会自动执行test包下的各个单元测试. 这是因为spring-boot-maven-plugin插件已经集成了maven-surefire ...

  9. java 运行时常量、编译时常量、静态块执行顺序

    详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt223 常量是程序运行时恒定不变的量,许多程序设计语言都有某种方法,向编译器告 ...

随机推荐

  1. Entity Framework 学习初级篇6--EntityClient

    System.Data.EntityClient 命名空间是 实体框架的 .NET Framework 数据提供程序.EntityClient 提供程序使用存储特定的 ADO.NET 数据提供程序类和 ...

  2. UIImageView动画

    NSMutableArray *arrM = [NSMutableArray array]; // 2.加载所有图片 ; i <= ; i++) { NSString *imageName = ...

  3. iOS开发中控制器切换方式Modal

    简介 在iPhone开发中 Modal是一种常见的切换控制器的方式 默认是从屏幕底部往上弹出,直到完全盖住后面的内容为止 在iPad开发中 Modal的使用频率也是非常高的 对比iPhone开发,Mo ...

  4. HDU 1815 Building roads

    二分答案 + 2-SAT验证 POJ 稳过,HDU C++ 超时,G++ 550ms左右AC #include<cstdio> #include<cstring> #inclu ...

  5. logo集锦

    收集一个酷酷的技术公司的logo,一方面学习其中的美,另一方面打算用代码的画出这些logo算做致敬.感谢他们改变了我们的世界. 三星 苹果 戴尔 谷歌 IBM intel 惠普

  6. sql server 更新两个表的某个字段

    --临时表 create table tmp_cup ( a varchar(20), b varchar(50), c varchar(20) ) select * from t_customer ...

  7. HashSet 与HashMap底层实现

    1. HashSet底层通过包装HashMap来实现,HashSet在添加一个值的时候,实际上是将此值作为HashMap中的key来进行保存. 2. HashMap的底层实现是通过初始化化一个Entr ...

  8. ural1613 For Fans of Statistics

    For Fans of Statistics Time limit: 1.0 secondMemory limit: 64 MB Have you ever thought about how man ...

  9. ArcEngine部分工作总结

    Arcengine工作总结地物点查询本部分可以在一个窗体中实现,也可以在两个窗体中实现.由于工作要求本人是在两个窗体中实现的:弹出窗体的名称为FormQuery主窗体单机查询时间的代码FormQuer ...

  10. (简单) POJ 3268 Silver Cow Party,Dijkstra。

    Description One cow from each of N farms (1 ≤ N ≤ 1000) conveniently numbered 1..N is going to atten ...