【发布时间】:2018-06-04 23:12:10
【问题描述】:
Sonarqube 允许通过在 sonar.coverage.exclusions 键中添加模式来将单个文件排除在代码覆盖范围之外。这可以通过将它们添加到 UI 甚至 .csproj 文件中(通过指定 SonarQubeSetting 元素)在项目级别上完成。即
<SonarQubeSetting Include="sonar.coverage.exclusions">
<Value>**/*.cs</Value>
</SonarQubeSetting>
但是,这两种方法似乎都不起作用。使用 SonarQube documentation 中指定的模式不会提供所需的结果。我也知道 SonarQubeExclude MSBuild 属性的存在,但我不想走这条路,因为它会将我的项目排除在所有其他分析之外。
还有另一种我失踪的可能性吗?还是根本不可能将项目中的所有类都排除在代码覆盖范围之外?
【问题讨论】:
-
您是否尝试在命令行中像这样传递参数:
SonarQube.Scanner.MSBuild.exe" begin /d:sonar.coverage.exclusions=**\MyLib1\MyPath1*,**\MyLib2\MyPath2*在我的情况下就像一个魅力。 -
@Peska 您正在运行什么版本的 SonarQube/MSBuild 扫描仪?在我的情况下,这没有按预期工作。
-
SonarQube 版本 6.7.1.35068。 SonarScanner MSBuild 4.0.2.892。这是一个完整的示例:
"C:\PathToSonarQubeScanner\SonarQube.Scanner.MSBuild.exe" begin /k:"ProjectKey" /n:"ProjectName" /v:"1.0.0" /d:sonar.coverage.exclusions=**\PathToExclude\**,**\PathToExlude2\**"C:\PathToMSBuild\MSBuild.exe" SolutionFile.sln /t:Rebuild"C:\PathToSonarQubeScanner\SonarQube.Scanner.MSBuild.exe" end
标签: c# msbuild sonarqube csproj sonarqube-msbuild-runner