利用 Rational Team Concert 在敏捷开发中进行持续集成
2010-04-19 00:00:00 来源:WEB开发网为了能在 ANT 脚本中调用 EMMA 生成测试覆盖率报告,需要先将相关的类库文件 emma.jar、emma_ant.jar 下载到本地,并在 ANT 脚本中设置相应的路径并引入 EMMA 任务定义,从而使 ANT 知道这些类库的位置。如清单 1 所示:
清单 1. 在 ANT 中引入 EMMA 任务
<path id="emma.lib" >
<pathelement location="${emma.dir}\emma.jar" />
<pathelement location="${emma.dir}\emma_ant.jar" />
</path>
<taskdef resource="emma_ant.properties" classpathref="emma.lib" />
在源代码编译完成后,在需要测试的类中注入 EMMA 字节码。如清单 2.
清单 2. 注入 EMMA 字节码
<target name="instrument" depends="compile">
<emma enabled="yes">
<instr instrpath="${classes.dir}" destdir="${instr.dir}"
metadatafile="${emma.report.dir}\metadata.emma" merge="true">
</instr>
</emma>
</target>
然后调用 JUnit 任务进行单元测试,在测试前需要设置正确的 jvmarg。如清单 3 所示。
清单 3. 运行测试用例
<target name="test" depends="instrument">
<junit dir="${classes.dir}" printsummary="on" fork="true" >
<classpath refid="classpath" />
<jvmarg value="-Demma.coverage.out.file=${emma.report.dir}\coverage.emma" />
<jvmarg value="-Demma.coverage.out.merge=true" />
<formatter type="xml" />
<batchtest todir="${junit.report.dir}">
<fileset dir="${classes.dir}">
<include name="**/*Test.*" />
</fileset>
</batchtest>
</junit>
</target>
更多精彩
赞助商链接