2014-04-21 142 views
0

我使用的Cobertura 2.3.0从http://cobertura.github.io/cobertura/来分析我的测试覆盖的项目,我得到一个获得测试覆盖率结果用Cobertura

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可以产生的清洁输出类型。

+0

你可以试试通过https://cobertura.ci.cloudbees.com/job/Cobertura/下载最新版本的cobertura吗? – Steve

+0

@Steve谢谢你的回复。我不熟悉詹金斯。我如何去从这个网站下载?如果它是源代码?谢谢! – Kon

+0

那里有“可以下载的列表”中的“Last Successful Artifacts”。您需要根据当前的设置获取tar.gz,zip或SNAPSHOT.jar。 – Steve

回答

0

回答我自己的问题,希望它能帮助别人。

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

目前,我已经用EclEmma Eclipse for EMMA插件来测试代码覆盖率,并且以我想要的方式获得了漂亮的结果。

相关问题