如何使用Cobertura maven插件,以免字节码被改变?

时间:2016-05-23 08:32:00

标签: cobertura maven-cobertura-plugin

我最近尝试为我们的项目添加cobertura插件。但我遇到了一个奇怪的问题。现在,如果我尝试这样做:

mvn clean package cobertura:check-integration-test

我的项目组装得很好。但在部署之后,我得到的是消息:

  

java.lang.NoClassDefFoundError:   净/ sourceforge的/的Cobertura / coveragedata / LightClassmapListener

据我所知,这种情况会发生,因为cobertura会改变我的类的字节码。那么,我该如何进行检查和构建代码呢?现在我为teamcity提出以下解决方案:

第一步是cobertura:

mvn clean package cobertura:check-integration-test

在第二步之后运行正常程序集:

mvn clean package

这似乎有效,但似乎有点奇怪,我必须运行两次打包过程(这需要两倍的时间),只是为了使字节码不受cobertura插件影响而进行干净的构建。

1 个答案:

答案 0 :(得分:0)

如果您使用qualinsight-mojo-cobertura,您的类将在检测时备份,然后在报告时恢复(这将导致生成的包中包含非检测类)。

在入侵和报告之间,您可以根据需要运行测试(无论是UT,IT)(与maven-cobertura-plugin不同,qualinsight-mojo-cobertura不运行测试)。有关更多信息,请查看项目页面(特别是默认情况下插件绑定的Maven阶段。)