我有一个多模块 maven 项目,其中包含以下模块:moduleA、moduleB、moduleC。然后我有一个完全独立的 moduleTest,其中包含由故障安全插件运行的集成测试。
我想要一份由 cobertura(或任何其他 maven 插件)生成的报告,它可以告诉我模块 A、B 和 C 中的哪些行包含在我的集成测试中。
我认为http://jira.codehaus.org/browse/MCOBERTURA-65对我没有帮助。有没有简单的方法来实现这一目标?
我有一个多模块 maven 项目,其中包含以下模块:moduleA、moduleB、moduleC。然后我有一个完全独立的 moduleTest,其中包含由故障安全插件运行的集成测试。
我想要一份由 cobertura(或任何其他 maven 插件)生成的报告,它可以告诉我模块 A、B 和 C 中的哪些行包含在我的集成测试中。
我认为http://jira.codehaus.org/browse/MCOBERTURA-65对我没有帮助。有没有简单的方法来实现这一目标?
一种可能的解决方案是使用 Emma。您应使用仪器目标在源代码模块中设置代码检测:
http://mojo.codehaus.org/emma-maven-plugin/instrument-mojo.html
成功编译和检测后,测试执行将生成覆盖率数据。然后你可以执行 emma 独立工具来生成基于它的报告:
java emma report -r txt,xml,html -in coverageA.em,coverageB.em,coverageC.em,coverage.ec -sp srcA/,srcB,srcC
coverage*.em应替换为源代码模块中 Emma 元数据生成的正确路径,coverage.ec是测试模块中生成的覆盖文件的路径,src*目录应替换为源代码目录的路径。这是详细的文档:
http://emma.sourceforge.net/reference/ch02s04s03.html
你也可以用 jacoco 来做(也是一种非常棘手的方式),但由于声誉太低,我不能放置超过 2 个链接。所以喜欢就喜欢!:)