【问题标题】:How to download the latest SonarLint rule set for Visual Studio from SonarQube with customized rule severity settings?如何使用自定义规则严重性设置从 SonarQube 下载适用于 Visual Studio 的最新 SonarLint 规则集?
【发布时间】:2016-07-27 08:39:21
【问题描述】:

我们在 Visual Studio 2015 的“连接模式”下设置了 SonarQube 5.4 和 SonarLint 2.0。一切似乎都工作正常,除非我们在服务器上自定义规则的严重性,然后这些自定义严重性设置不会显示在 Visual Studio Studio 规则集。

以下是我们遵循的步骤:

  1. 在服务器上自定义规则的严重性,例如从默认的“信息”到“关键”。
  2. 由于我们设置了“连接模式”,现在同步解决方案以下拉新版本的规则集。
    • 注意:为了排除“连接模式”问题,我们还使用“SonarLint for Visual Studio 规则集”的永久链接从 SonarQube 的“质量配置文件”页面手动下载了规则集。
  3. 打开新下载的规则集文件,注意该规则仍设置为其默认严重性(在此示例中,规则集仍将默认“信息”严重性显示为规则集文件中的“警告”。我希望它已更新为“错误”)。

似乎唯一改变下载的规则集文件的是我们在服务器上激活/停用规则,然后正确添加/删除它。

这是 SonarQube 中的错误吗?还是我们只是缺少一些工作流程?

这导致了一个后续问题:SonarQube 服务器上的严重性设置如何映射到 Visual Studio 规则集设置?我们注意到 SonarQube 上的“信息”没有映射到 Visual Studio 中的“信息”。我本来希望得到类似以下映射的内容:

SonarQube 视觉工作室 --------- ------------- 拦截器 = 错误 严重 = 错误 主要 = 错误 轻微 = 警告 信息 = 信息

【问题讨论】:

  • 是否还有其他活动规则集使用旧级别的更改规则?
  • 不,我们在 SonarQube 中只有一个质量配置文件(默认)。我们在 Visual Studio 中的 C# 项目只包含一个规则集。我尝试直接从 SonarQube 下载规则集,但下载的规则集中的严重性也没有改变。
  • 优先级的变化存储在 active_rules 表的 failure_level 列中。该值被转换为 Severity 对象。可能 QProfileExporters 有问题
  • 我们检查了 active_rules 表,表中的严重性正在发生变化,与 SonarQube UI 相同。但是,当我们下载 Visual Studio 规则集时,Visual Studio 严重性似乎与 SonarQube 严重性不对应。我觉得这是如何从 SonarQube 生成 Visual Studio 规则集文件的问题。
  • 我同意。请参阅this 问题。

标签: sonarqube sonarlint sonarlint-vs


【解决方案1】:

问题在于 SonarQube 和 Visual Studio 之间没有一对一的严重性映射,因此我们选择了一个安全的解决方案并将所有内容都导出为警告,而不是错误,因为这会破坏编译。

您可以在本地更改规则集,并加强规则集文件,从而将问题标记为错误。与 SonarQube 的重新同步不会恢复您所做的更改,如果它们使质量配置文件更强。

请注意,已创建以下票证来解决此问题:https://jira.sonarsource.com/browse/SONARCS-591

【讨论】:

    猜你喜欢
    • 2016-05-27
    • 2018-09-13
    • 1970-01-01
    • 2018-04-30
    • 2017-10-07
    • 2023-04-02
    • 1970-01-01
    • 1970-01-01
    • 2020-02-27
    相关资源
    最近更新 更多