[cobertura-report] Cobertura: Error reading file /opt//cobertura.ser: cobertura.ser

本文介绍了一种在Java应用中通过Cobertura进行代码覆盖率增强的方法,并详细解释了如何在生成的class文件中插入instrumentation,同时避免测试用例的覆盖率计算,以提高代码分析的准确性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

解决办法:

定义target,向生成的java.class里插入instrumentation,test.class将不插入instrumentation,因为我们不关心测试用例本身的覆盖率。

<targetname="instrument">
  1. <!--Removethecoveragedatafileandanyoldinstrumentationclasses-->
  2. <deletefile="cobertura.ser"/>
  3. <deletedir="${instrumented.classes.dir}"/>
  4. <!--Instrumenttheapplicationclasses,writingtheinstrumentedclassesinto${instrumented.classes.dir}-->
  5. <cobertura-instrumenttodir="${instrumented.classes.dir}">
  6. <!--Thefollowinglinecausesinstrumenttoignoreanysourcelinecontainingareferencetolog4j,forthepurposeofcoveragereporting-->
  7. <ignoreregex="org.apache.log4j.*"/>
  8. <filesetdir="${src.java.classes.dir}">
  9. <includename="**/*.class"/>
  10. </fileset>
  11. </cobertura-instrument>
  12. </target>

注:instrumented.classes.dir存在所有被植入instrumentation的Java class。如果java代码和测试用例被编译到了同一个目录下,可以使用如<exclude name="**/*Test.class" />忽略测试用例。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值