我们在项目中使用声纳。 Sonar默认使用cobertura来确定代码覆盖率。我的应用程序分为多个项目,每个项目都有自己的pom.xml文件。据我所知,cobertura统计数据也将按每个项目计算。
我的pom.xml有以下配置
<reporting>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>cobertura-maven-plugin</artifactId>
<version>2.4</version>
</plugin>
</plugins>
</reporting>
我面临的问题是我在项目A中有一个JUnit测试类,它调用并测试项目B中的某些类。但是,当我查看项目B的cobertura报告时,它显示0%的行覆盖率。项目A的覆盖率报告无论如何都不会包含有关项目B的详细信息。是否需要一些配置才能获得正确的代码覆盖率?
我怀疑这可能是因为cobertura仪器的详细信息没有正确合并,因此我尝试在项目A&amp;的pom.xml文件中添加以下内容。 B但结果仍然没有什么不同。
<cobertura-merge>
<fileset dir="${basedir}">
<include name="**/cobertura.ser" />
</fileset>
</cobertura-merge>
无论如何,我认为声纳应该足够智能合并结果。我可能需要进行哪些特定的配置更改才能获得正确的代码覆盖率数据? 这对我们来说很重要,因为我们不希望落后于其他更好的代码覆盖率的团队。我们知道很多代码已通过单元和集成测试类覆盖,但没有数字来证明它!
过去有没有人遇到过类似的问题?
谢谢, 米滕