覆盖率与Java 7支持问题

30

你知道cobertura何时支持Java 7吗?

这里找到了信息。

我们更喜欢cobertura而不是emma和其他代码覆盖率工具,但看起来我们必须重新做一遍,因为它们都还不支持Java 7。

谢谢


你有没有找到使用Java 7的Cobertura的解决方案? - vinod
1
@vinod cobertura主网站上最新的条目(2013年4月11日)写道,“史蒂文还正在迁移代码以使用maven,并计划很快发布cobertura 2.0!欢迎史蒂文!” - Jagger
2
在2013年5月29日发布了2.0版本,现在支持Java 7。 - Nick
此问题似乎已经过时,因此不适合讨论。 - bmargulies
5个回答

16

Cobertura 2.0.3支持Java 7,使用此版本的cobertura-maven-plugin版本2.6刚刚发布


我知道 - 我已经检查了代码并自己编译过了(只需mvn install)。 - David Rabinowitz
1
看起来现在已经在中央仓库了。http://search.maven.org/#search%7Cga%7C1%7Ca%3A%22cobertura-maven-plugin%22 - kfox
嗨,它在存储库中并且运行良好...但是如果我使用Java7的新try-with-resource功能,它会告诉我测试中缺少“不存在的catch”块...它标记了try块的结束括号。 - wutzebaer

10

我通过添加以下参数来使其正常工作:

-XX:-UseSplitVerifier

参考这里


我正在使用Ant,那么我该如何添加它? - vinod
我不知道你的构建系统是如何设置的,但这是在我的 build.xml 文件中处理它的行:<property name="coverage.additional.jvmargs" value="-Xmx256m -XX:-UseSplitVerifier"/> - T.K.
我在进行仪器化时没有发现任何错误,但是当我启动Tomcat时,它会抛出一个错误“SEVERE: Error listenerStart”,但是如果不使用仪器化的war文件运行,则服务器正常运行。 - vinod
在 JVM 参数中使用 UseSplitVerifier 是有效的;对于 Ant,您可以使用 JAVA_OPTS 环境变量或其他许多选项。 - Dzhaughn
这对我来说完美地解决了问题。请参考此问题的解释:https://dev59.com/R2Up5IYBdhLWcg3wdnh6 - Michael Calvin

3
我认为答案是:不会。邮件列表上有关于该项目未得到维护的讨论,还有Java 7漏洞已经存在一年之久。好消息是,JaCoCo的功能相当,并且正在积极维护。

是的,Jacoco-hudson插件仍在开发中(不是Jenkins插件)。 - crankparty
不要放弃尝试-XX-UseSplitVerifier选项。 - Dzhaughn
eCobertura(Cobertura的Eclipse插件)自2010年以来就没有得到维护,但Cobertura本身仍在维护。如果您正在寻找覆盖率报告(例如eCobertura曾经提供的报告),只需使用mvn cobertura:cobertura运行Cobertura maven插件,并检查target/site/cobertura/index.html下的HTML报告即可。 - MisterStrickland

1

0

虽然这是一个旧帖子,但我的回答可能仍有用:Cobertura支持最新的Java版本并且正在积极维护。 eCobertura(Cobertura的Eclipse插件)自2010年以来就没有得到维护,但Cobertura本身仍在维护。

eCobertura无法在Java 7或更高版本上运行,但Cobertura可以。

如果您正在寻找覆盖率报告(例如eCobertura曾经提供的报告),只需使用mvn cobertura:cobertura运行Cobertura maven插件,并检查target/site/cobertura/index.html下的HTML报告即可。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接