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. List转DataSet

    public DataSet ConvertToDataSet<T>(IList<T> list) { if (list == null || list.Count <= ...

  2. string字符串转C风格字符串 进而转换为数字

    要求如题 头文件stdlib.h中有一个函数atof() 可以将字符串转化为双精度浮点数(double) double atof(const char *nptr); 此字符串为C风格字符串,因此需要 ...

  3. 转:创建编码的WebTest

    创建编码的WebTest•通常,通过将现有的已记录Web测试转换为编码的Web测试来创建编码的Web测试.记录的Web测试以“Web测试编辑器”中可见的请求树开头.编码的Web测试是一个生成一系列We ...

  4. 'xcopy' 'ipconfig'。。。 不是内部或外部命令,也不是可运行的程序 或批处理文件

    最近在win8下安装软件的时候,总是报 "xxx不是内部或外部命令,也不是可运行的程序 或批处理文件" 的错误 . 百思不得其解  打开cmd 或 powerShell 输入xco ...

  5. Spring注入值得2种方式:属性注入和构造注入

    Spring是一个依赖注入(控制反转)的框架,那么依赖注入(标控制反转)表现在那些地方了? 即:一个类中的属性(其他对象)不再需要手动new或者通过工厂方法进行创建,而是Spring容器在属性被使用的 ...

  6. 继续几道经典的js题(局部和全局变量,对象等)

    1. //现有代码如下:var foo = 1;function main(){alert(foo);var foo = 2;alert(this.foo)this.foo = 3;}//1.请给出以 ...

  7. 天梯赛决赛 L2-1.红色警报 并查集

    L2-013. 红色警报 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 战争中保持各个城市间的连通性非常重要.本题要求你编写一 ...

  8. 高橋君とホテル / Tak and Hotels

    高橋君とホテル / Tak and Hotels Time limit : 3sec / Stack limit : 256MB / Memory limit : 256MB Score : 700  ...

  9. 在js中如何得到上传文件的大小。

    <html>  <head>  <script language="javascript">    function getSize() {   ...

  10. Python tab 命令补全,以及 vim 补全

    在python 命令行中,使用补全 python 查看 packages 的目录 可用 sys.path 查看. /usr/lib/python2.7/site-packages vim tab.py ...