我正在尝试通过cobertura为我的单元测试生成覆盖率报告。 以下是我遵循的步骤 1.将我的代码编译成jar 2.检测jar文件 3.使用检测代码
运行单元测试我已经初始化了错误上下文,用于所有单元测试 如果我使用原始jar,而不是检测的类文件,单元测试运行,但我在代码中获得O%覆盖率。
下面是我对junit的蚂蚁目标
<junit reloading="false" fork="yes" forkmode="perBatch" printSummary="yes" failureproperty="test.failure" includeantruntime="yes">
<jvmarg value="-XX:UseSplitVerifier" />
<sysproperty key="net.sourceforge.cobertura.datafile" value="{reports.dir}/cobertura.ser" />
<classpath>
<!-- Jar file of instrumented classes -->
<pathelement location="My_code_inst.jar">
<!-- Tests run with this jar but no coverage data -->
<!--pathelement location="My_code.jar" -->
<pathelement location="My_Test.jar"/>
</classpath>
<classpath refid="junit.classpath" />
<classpath refid="cobertura.classpath" />
<batchtest fork="yes" todir="${reports.dir}">
<resources>
<zipfileset src="My_Test.jar" includes="**/*Test.class"/>
</resources>
</batchtest>
</junit>
我对My_code_inst.jar和My_code.jar进行了二元比较。没有看到任何孤儿。反汇编代码揭示了仪表化方法。