Multi Module Maven项目:用于集成测试的独立模块:代码覆盖率

时间:2014-08-20 00:14:30

标签: cobertura jacoco emma maven-cobertura-plugin

我有一个多模块maven项目,其模块包括:moduleA,moduleB,moduleC。然后我有一个完全独立的moduleTest,它在failafe插件中运行集成测试。

我希望有一个由cobertura(或任何其他maven插件)生成的报告,它可以告诉我我的集成测试涵盖了所有moduleA,B和C中的哪些行。

我不认为http://jira.codehaus.org/browse/MCOBERTURA-65会帮助我。有没有一种简单的方法来实现这一目标?

1 个答案:

答案 0 :(得分:1)

可能的解决方案之一是使用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 是测试模块中生成的coverage文件的路径, src * 目录应替换为源代码目录的路径。这是详细的文档:

http://emma.sourceforge.net/reference/ch02s04s03.html

你也可以使用jacoco(也是一种非常棘手的方式),但由于声誉太低,我不能放超过2个链接。所以喜欢它! :)