SonarQube MSBuild运行器在停用的规则上失败

时间:2015-10-14 15:02:28

标签: c# sonarqube sonarqube5.1.2 sonarqube-msbuild-runner

如果我在质量配置文件中停用FxCop规则,SonarQube MSBuild运行器将失败:

无法找到与规则配置密钥相对应的规则密钥' CA1305'在存储库" fxcop"。

我已批量添加了所有fxcop规则。添加了一个项目。然后停用质量配置文件中的一些规则并尝试分析 new 项目。 即使代码中没有任何违反此规则的行为 - 跑步者仍然会因为这个奇怪的错误而失败。

1 个答案:

答案 0 :(得分:2)

我怀疑在您在存储库中禁用规则后,您以某种方式导入了包含CA1305问题的FxCop报告。

您在此处生成的错误消息正在生成,此方法仅在解析FxCop报告期间调用:https://github.com/SonarCommunity/sonar-fxcop-library/blob/1.3/src/main/java/org/sonar/plugins/fxcop/FxCopSensor.java#L179

你可以尝试一下:

  1. 停用质量配置文件中的CA1305规则
  2. 运行:MSBuild.SonarQube.Runner begin /k:... /n:... /v:...
  3. msbuild /t:rebuild
  4. MSBuild.SonarQube.Runner end
  5. 然后,你能验证一下:

    1. 在生成的文件.sonarqube\conf\SonarQubeFxCop-cs.ruleset中,您看不到CA1305的条目
    2. 您可以在.sonarqube\out\*\ProjectInfo.xml中找到FxCop报告的位置 - 查找<AnalysisResult Id="FxCop" Location="..."
    3. 在该报告中,CA1305
    4. 没有出现