Ant工程执行测试后的目录结构如下:

构建文件(build.xml),有中文可能会报错
<?xml version="1.0"?>
<project name="secondbuild" default="compile">
<!--test class name-->
<property name="test.suite" value="org.antbook.service.StudentServiceTest" />
<property environment="env" />
<echo>test=${env.JAVA_HOME}</echo>
<target name="init">
<mkdir dir="build/classes" />
<mkdir dir="build/test/classes" />
<mkdir dir="dist" />
<mkdir dir="build/test/data" />
<mkdir dir="build/test/report" />
</target>
<target name="clean" >
<delete dir="build" />
<delete dir="dist" />
</target>
<target name="compile" depends="init">
<javac srcdir="src" destdir="build/classes" />
</target>
<!--test compile:需要build/classes目录中的class文件,因为测试代码使用的源码-->
<target name="test-compile" depends="init,compile">
<javac destdir="build/test/classes">
<src path="test" />
<classpath refid="test.compile.classpath" /><!--使用了build/classes中的class-->
</javac>
</target>
<!--junit test-->
<target name="junit" depends="test-compile" >
<junit>
<classpath refid="test.run.classpath" />
<test name="${test.suite}" />
<test name="org.antbook.service.EventServiceTest" />
</junit>
</target>
<!--batch junit test, report-->
<target name="batch-junit-test" depends="test-compile" >
<!--测试失败后并不会直接跳到<fail>任务,<target>中的任务是顺序执行的-->
<junit printsummary="yes"
haltonfailure="false"
errorProperty="test.failed"
failureProperty="test.failed">
<classpath refid="test.run.classpath" />
<formatter type="xml" /> <!--格式化格式化器-->
<batchtest fork="yes" todir="build/test/data"><!--生成的xml测试报告存放的位置-->
<fileset dir="build/test/classes"
includes="**/*Test.class" />
</batchtest>
</junit>
<!--应该放到<fail>任务之前,这样才会根据xml产生html文档-->
<junitreport todir="build/test/data"> <!--将TESTS-TestSuites.xml文件存放于该目录-->
<fileset dir="build/test/data"> <!--根据这些xml文件生成TESTS-TestSuites.xml(固定),打开TESTS-TestSuites.xml文件可以看见该文件包含了这些xml中的信息-->
<include name="TEST-*.xml"/>
</fileset>
<report format="frames" todir="build/test/report" /> <!--Ant会根据TESTS-TestSuites.xml(固定)生成html测试报告-->
</junitreport>
<!--如果名为test.failed的特征存在,则输出异常信息-->
<fail if="test.failed">
Test failed.........................
</fail>
<!--如果<fail>任务后面有任务 都不会被执行,但是在<fail>任务前面的任务还会被继续执行-->
<echo>test print....</echo>
</target>
<!--compile classpath-->
<path id="compile.classpath" >
<fileset dir="lib">
<include name="*.jar" />
</fileset>
</path>
<!--run classpath-->
<path id="run.classpath">
<path refid="compile.classpath" />
<pathelement path="build/classes" />
</path>
<!--test compile classpath-->
<path id="test.compile.classpath">
<path refid="compile.classpath" />
<pathelement path="build/classes" />
</path>
<!--test run classpath-->
<path id="test.run.classpath">
<path refid="test.compile.classpath" />
<pathelement path="build/test/classes" />
</path>
</project>
本文详细解析了Ant工程在执行测试后的目录结构及其自动化测试流程,包括构建、清理、编译、测试编译和JUnit测试等关键步骤,并介绍了如何生成测试报告。

被折叠的 条评论
为什么被折叠?



