运行测试和覆盖率后,当我查看生成的报告(lcov(时,我只看到两个文件被报告为100%覆盖率。这些是在我的项目中进行单元测试的正确文件。
然而,在将此报告提供给SonarQube后,Sonar的覆盖率报告显示了其他几个文件的覆盖率均为0%。
我知道我可以通过命令行选项和UI排除文件,但如果我的报告已经正确,为什么我必须这样做?
SonarQube希望从哪里获得报告覆盖范围的文件列表?
是的,SonarQube正在考虑所有项目文件来提供项目覆盖率度量。因为在一个包含根本没有覆盖的源文件的项目上显示100%覆盖率指标是一个谎言。
如果测试文件被正确识别(sonar.tests、sonar.ttest.inclusions(,并且一些特定文件(如生成的文件(被故意排除在外(sonar.coverage.inclusiones(,那么SonarQube项目覆盖率度量是可靠的。