【问题标题】:Static analysis - SonarQube to test same standards as on Git pre-commit hook静态分析 - SonarQube 测试与 Git 预提交挂钩相同的标准
【发布时间】:2018-01-09 03:28:46
【问题描述】:

我们正在对两点进行静态分析测试:

  • 在 Git 预提交挂钩上,在这种情况下,我们使用 phpcs、phpmd、stylelint 和 eslint 引擎(普通安装 + Drupal Coder 用于添加 Drupal 标准)
  • 我们每周更新一次在 SonarQube 上的项目仪表板,它运行以下质量配置文件:Drupal (PHP)、JS 和 SCSS

我们希望将我们的标准与单一标准保持一致,但使用不同的引擎会使这变得更加困难(甚至不可能?)。 我可以想到一些可能的方法来实现这一点:

  • 在预提交和 SonarQube 上手动对齐规则
  • 使用 SonarQube 进行我们的预提交测试
    我不确定,因为通过查看 SonarQube 的 Drupal 标准,那里的规则似乎比 Drupal PHPCS 标准(来自 Drupal Coder)少得多 - relevant question I found about it
    (还有另一个关于 aligning SonarQube's PHP plugin with phpCS 的相关问题)
  • 使用我们的引擎集为 SonarQube 创建一个自定义插件(没办法..)

在我看来,理想的解决方案是让 SonarQube 像大多数静态分析工具一样读取 Git 存储库中的规则文件(例如 phpcs.dist.xml)。

我还看到了SonarQube and stylelint Rule Mapping - 这是我找到的关于这些引擎的唯一映射。

我们怎样才能以最简单的方式解决这个问题?

【问题讨论】:

    标签: drupal sonarqube eslint phpcs stylelint


    【解决方案1】:

    您可以在 CLI 中使用PHPStan ,就像您可能使用编码标准检查或 PHPUnit 测试一样:

    vendor/bin/phpstan analyse src --level=0
    

    在你的 pre/post-commit 钩子中设置它,你就可以开始了。 阅读更多short post about first install of PHPStan

    【讨论】:

    • PHPStan 很棒,但它仍然不能回答我的问题。 PHPStan 没有像 SonarQube 那样提供仪表板,它只测试 PHP 而不是编码标准(可能最后一个是错误的..)。
    • 哦,我明白了。我用你的评论再次阅读了问题,现在我有了更好的背景。所以你问如何将 phpstan、编码标准和 linter 合并到单个仪表板以在 SonarQube 中查看结果?或者在任何其他工具中?为什么你真的需要这个?
    • 不完全是。我在问我是否可以在我们的预提交钩子和我们的 SonarQube 仪表板上使用 same 编码标准和 linter。 (也欢迎提供带有分数、趋势等的仪表板的其他工具,但同样 - 主要问题是在两个测试中具有完全相同的标准):)
    • 我明白了。我被标题弄糊涂了,哪里只有钩子和静态分析,没有SonarQube。在那种情况下,我不知道,因为我不使用 SonarQube :) 我建议您更新并缩短问题。知道 SonarQube 的人肯定会根据标题跳过这个问题,这很遗憾,因为他或她可能会帮助你。我会尽快删除我的答案。
    • 您可以留下您的答案,因为它阐明了我们的需求。新标题比以前的好了吗?
    猜你喜欢
    • 1970-01-01
    • 2013-10-05
    • 2016-04-02
    • 1970-01-01
    • 1970-01-01
    • 2021-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多