通过Cobertura获得测试覆盖率结果

时间:2014-04-21 21:29:47

标签: java testing junit cobertura

我正在使用来自http://cobertura.github.io/cobertura/的Cobertura 2.3.0来分析我的项目测试覆盖率,我正在获得

Error: Could not find or load main class net.sourceforge.cobertura.instrument.Main

尝试从命令行执行cobertura-instrument.bat时。我查看了这个批处理文件,它试图从%COBERTURA_HOME%/ lib文件夹中加载几个不存在的JAR。我手动下载了这些JAR,但我遇到了其他奇怪的错误。

java.lang.IncompatibleClassChangeError: class net.sourceforge.cobertura.instrument.pass1.DetectIgnoredCodeClassVisitor has interface org.objectweb.asm.ClassVisitor as super class

此版本是否可能未正确更新?我没有看到任何其他方式使这项工作。此外,是否有人知道工作测试覆盖效用,最好是工作不同版本的Cobertura?

我已经尝试了Nounit和其他几个人,但是我没有得到Cobertura可以生产的清洁输出类型。

1 个答案:

答案 0 :(得分:0)

回答我自己的问题,希望它可以帮助某人。

在撰写本文时,Cobertura存在一个已知错误,在某些情况下会抛出ClassNotFoundException。请参阅以下问题跟踪器页面:https://github.com/cobertura/cobertura/issues/74#issuecomment-41383903

目前,我已经使用EMEM的EclEmma Eclipse插件进行测试代码覆盖,并以我想要的方式得到了很好的结果。