Code coverage 声纳&x2B;非webservice模块的jacoco代理代码覆盖率

Code coverage 声纳&x2B;非webservice模块的jacoco代理代码覆盖率,code-coverage,sonarqube,functional-testing,multi-module,jacoco,Code Coverage,Sonarqube,Functional Testing,Multi Module,Jacoco,我试图使用JaCoCo代理收集网站的FT代码覆盖率,方法是向Jetty添加“-javaagent…”,并运行外部Selenium测试(例如,手动测试) 在测试结束时,我只得到了在Jetty中实际运行的web模块的结果,但没有得到在web模块中使用的“核心”模块(在同一项目中)的结果。那么,是否有能力收集项目所有模块的呼叫 事实上,我现在尝试使用相同的JaCoCo报告目标(即/tmp/JaCoCo-res.exec)启动所有project Web服务(它有5个),然后运行: mvn sonar:s

我试图使用JaCoCo代理收集网站的FT代码覆盖率,方法是向Jetty添加
“-javaagent…”
,并运行外部Selenium测试(例如,手动测试)

在测试结束时,我只得到了在Jetty中实际运行的web模块的结果,但没有得到在web模块中使用的“核心”模块(在同一项目中)的结果。那么,是否有能力收集项目所有模块的呼叫

事实上,我现在尝试使用相同的JaCoCo报告目标(即
/tmp/JaCoCo-res.exec
)启动所有project Web服务(它有5个),然后运行:

mvn sonar:sonar -Dsonar.jacoco.itReportPath=/tmp/jacoco-res.exec
因此,sonar现在为项目中的每个模块使用了相同的JaCoCo报告文件,sonar显示了码头运行和核心模块的测试覆盖率


该方法是否适用,覆盖率结果是否正确

几天前我在网上提出了一个类似的问题

简言之,你的方法是正确的,也是由一位声纳顾问提出的(从帖子上可以看到)

  • 对每个Maven项目进行声纳分析
  • 对于每个分析,重用报告并传递JaCoCo报告(使用-Dsonar.JaCoCo.itReportPath)
  • 声纳将从JaCoCo报告中检索 与正在分析的Maven项目相关的覆盖率数据。(您的核心项目之一)
  • 因此,对于每个Maven项目,您将通过集成测试获得覆盖率
  • 最后,通过集成获得Web服务的覆盖率 测试时,您必须使用视图插件:
  • 创建一个视图,该视图是所有Maven的聚合 组成Web服务的项目
  • 对其中一个目标进行声纳分析 Maven项目是为了让声纳计算视图
  • 在视图仪表板上,您将能够获得代码覆盖率 通过您的集成测试对Web服务进行测试