我最近尝试为我们的项目添加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插件影响而进行干净的构建。
答案 0 :(得分:0)
如果您使用qualinsight-mojo-cobertura
,您的类将在检测时备份,然后在报告时恢复(这将导致生成的包中包含非检测类)。
在入侵和报告之间,您可以根据需要运行测试(无论是UT,IT)(与maven-cobertura-plugin
不同,qualinsight-mojo-cobertura
不运行测试)。有关更多信息,请查看项目页面(特别是默认情况下插件绑定的Maven阶段。)