用Ant批量执行Junit 测试

用Ant将自动化程序打包成jar,然后执行。

本文将介绍Ant的基本用法。


1. 下载 Ant

http://ant.apache.org/bindownload.cgi

Windows:  apache-ant-1.9.3-bin.zip
Linux: apache-ant-1.9.3-bin.tar.gz

2. 安装Ant

2.1 将安装包解压

2.2 添加环境变量ANT_HOME=解压后的路径,添加%ANT_HOME%\bin到Path。



2.3 将Junit.jar添加到Ant Runtime

Eclipse->Window->Preferences->Ant->Runtime,将Junit4.1.jar添加到ClassPath tab的Global Entries里。



3. Ant build.xml

Ant 内置了对 JUnit 的支持,它提供了两个 Task:junit 和 junitreport,分别用于执行 JUnit 单元测试和生成测试结果报告。使用这两个 Task 编写构建脚本,可以很简单的完成每次全面单元测试的任务。例如,build.xml的junit标签可以指定所有类名中以Test结尾的类都是Ant要批量执行的类,代码片段如下。

<target name="test" depends="compile"> 
         
        <junit printsummary="true" haltonfailure="no" showoutput="true"> 
            <classpath refid="class.path"> 
            </classpath> 
            <formatter type="xml" usefile="true"/> 
            <batchtest fork="yes" todir="${report}\raw\"> 
                <fileset dir="${dest}"> 
                    <include name="**/*Test.*"/> 
                </fileset> 
            </batchtest> 
        </junit> 
                 
        <junitreport todir="${report}">  
            <fileset dir="${report}\raw\">  
                <include name="TEST-*.xml"/>  
            </fileset>  
            <report format="frames" todir="${report}/html"/>  
        </junitreport>  
         
    </target> 



4. Ant 执行

在eclipse里,package explorer窗口列出的项目目录里,右键选中build.xml,Run As -> Ant Build.

Run As有两个Ant Build选项。第一个选项是直接在本项目中执行build.xml,第二个选项可以指定另外一个包作为build的来源,在Main tab的base directory指定。

执行后就可以到build.xml指定的report目录去看report了。Report是html的形式,如下所示。

下图引用自其他文章




遇到的问题及解决办法:

1. 执行build.xml失败,找不到harmcrest。

java.lang.NoClassDefFoundError:org/hamcrest/SelfDescribing

Junit.jar 从 4.11开始不包含harmcrest Hamcrest is no longer included in thisjar. 需要单独添加harmcrest jar包.

理论上添加junit.jar+ hamcrest-core.jar +hamcrest-library.jar, 实际上junit.jar+hamcrest-all.jar 解决了问题。期间需要重启eclipse。

https://code.google.com/p/hamcrest/downloads/list

2. 执行build.xml, 编译失败,

java.lang.NoClassDefFoundError: com.user1.xxx.xxx.TestConfig
at xxx.xxx.class
Caused by: java.lang.ClassNotFoundException:

这种错误是lib缺东西,最后检查发现Junit.jar添加到另外一个工程里了。添加之后重启eclipse。

Build successfully,但是执行失败。 原因可能是Java没装,环境变量没设置。





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值