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. 无法加载shockwave flash

    热心网友 360浏览器的话,浏览器——工具——选项(非Internet选项)——高级设置——FLASH, 默认使用PPAPI Flash(需要重启浏览器) 默认使用NPAPI Flash(需要重启浏览 ...

  2. elisp

    cons cell? 构建内存对象! 通过寄存器的基地址car和偏移地址cdr来--寻址内存对象,我是这样理解的. http://wiki.dourok.info/doku.php/%E5%B7%A5 ...

  3. javascript 之Function对象的apply(),call(),bind(),方法和arguments,caller,length属性

    注:这篇文章原文:http://www.jb51.net/article/30883.htm 自己作为学习,重新写写. 一.写在前面的话 前端javascript编程还只是略懂皮毛,DOM知道一点,j ...

  4. centos 7.1搭建docker本地私有仓库返回500错误

    之前有一篇写到在ubuntu14.04系统上安装私有仓库,遇到了两个问题,本次在centos7上遇到了另外一个问题. 安装完仓库并运行registry镜像之后发现push和pull操作都会返回一个50 ...

  5. Struts2.3.16日志(中)

    Result Configuration --Result 配置 当一个操作类方法完成后,它将返回一个字符串.字符串的值是用来选择一个元素的结果.一个操作映射的结果往往会有一组代表不同的可能的结果.一 ...

  6. P3P解决cookie存取的跨域问题

    最近在做一个流量统计的东西的时候,偶然发现IE在对iframe里面的页面写Cookie的时候有一些安全限制,导致读取Cookie不成功,找了好长时间的解决办法,重要找到如下的办法: 1.页面里的COO ...

  7. CodeForces 605A Sorting Railway Cars

    求一下最长数字连续上升的子序列长度,n-长度就是答案 O(n)可以出解,dp[i]=dp[i-1]+1,然后找到dp数组最大的值. #include<cstdio> #include< ...

  8. perties类的操作

    http://www.cnblogs.com/bakari/p/3562244.html perties类的操作   知识学而不用,就等于没用,到真正用到的时候还得重新再学.最近在看几款开源模拟器的源 ...

  9. eclipse创建android项目,无法正常预览布局文件

    http://jingyan.baidu.com/article/d621e8da0e0e052865913fae.html

  10. php中var_dump() 打印出一个对象的时候,信息怎么看?

    php 的一个依赖注入容器, 说白了,就是用php 的反射类,来在运行的时候动态的分析类具有的函数,以及动态分析函数的参数, 从而实例化类,并执行类的方法. 另外,php 中的 typehint 还是 ...