我有一个多模块maven项目,想要为项目的子集生成代码覆盖率报告,并使用声纳跟踪结果。
该项目包含模块M1
,M2
和M3
,我想为包foo/**
和包bar/**
生成报道报告。包可能存在于多个模块中。
我正在使用cobertura在我的maven项目中生成代码覆盖文件。
我的问题是:为单个项目生成多个代码覆盖率报告的最佳做法是什么?
一种选择是使用配置文件配置我的maven构建,以生成特定包的覆盖数据,例如coverage-foo
会使用<include>foo/**</include>
配置cobertura maven插件,而coverage-bar
会使用<include>bar/**</include>
配置cobertura插件。然后我将使用项目的两个分支配置声纳:一个用于foo
,另一个用于bar
,声纳侧没有配置。
但另一种选择是为整个项目生成代码覆盖率数据,并为每个声纳项目配置适当的内容。所以声纳&#39; foo&#39;分支将具有仅包含foo/**
个文件的设置,并且声纳bar
分支将具有bar
包的类似设置。
两者看起来都等同于我(就声纳输出而言),我赞成第一种选择,但我想知道这是否是最好的做法&#39;生成多个代码覆盖范围的方法&#39;视图&#39;同一个多模块项目。或者,如果一个选项存在我未考虑过的缺点。
(注意:声纳有一个商业&#39;视图&#39;插件,但我现在仅限于免费插件)
答案 0 :(得分:0)
鉴于我们的消息交换和您提供的信息,我宁愿在您的上下文中混合使用两个选项,即:
foo
(或bar
)foo
(或bar
)创建分支的方式分析您的代码,其中只包含foo
代码(或bar
代码)< / LI>
实际上,这将允许您获得有关覆盖范围的信息,但也允许您只有与foo /条形码相关的问题。
然而,你会遇到两个问题:
foo
和bar
的代码将不会被分析,除非您创建另一个分支,其中您将排除foo
和bar
代码请注意,第2点没有问题,因为您可以使用SonarQube的Web服务重建所需的信息(这将允许您构建一个汇总您想要聚合的数据的外部报告)
米歇尔