用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没装,环境变量没设置。