SonarLint与SonarQube同步

时间:2017-08-22 18:16:12

标签: sonarqube sonarlint sonarlint-eclipse

我已经阅读了SonarLint与SonarQube不同步的所有主题,但它并没有点击。

我创建了一个简单的Maven项目来测试SonarLint& SonarQube。我在项目中添加了sonar-maven-plugin,然后运行了mvn sonar:sonar。

该项目已上传至SonarQube。当我查看SonarQube时,我发现它显示了鱿鱼:S2699(junit test没有断言)作为阻止者。

然而,在日食中,SonarLint没有显示这样的问题。

我故意选择了这个,因为它不是PMD / FindBugs / Checkstyle问题。

我已经验证了squid:S2699在服务器上是活动的。显然它是,因为SonarQube展示了它。

只有1个质量档案:SonarWay。

编辑:我处于连接模式。

有谁知道为什么?

我正在使用:

  • Eclipse Neon.3发布(4.6.3)
  • sonar-maven-plugin 3.0.2
  • maven 3.3.9(日食中嵌入的那个)
  • SonarLint 3.2.0.201706271328
  • SonarQube 6.3(build 19869)

以下是截图作为证据。

SonarLint screenshot

SonarQube screenshot

1 个答案:

答案 0 :(得分:0)

您的测试文件似乎不被视为测试文件,而是视为源文件。我根据报告的错误类型(删除未使用的变量)和 not 报告的错误类型(无断言)来说明这一点。 您可能知道,不同的规则适用于源和测试。

SonarLint根据测试文件正则表达式首选项决定文件是否为测试文件,您可以在 Window / Preferences / SonarLint 中找到该首选项。默认值为**/*Test.*,**/test/**/*, 这似乎适用于各种情况,看看你的截图,它也适用于你的。 首先验证此设置。 如果该值与默认值不同, 我建议将其更改为默认值作为完整性检查。 然后你可以根据你的需要调整价值。

通过检查 SonarLint控制台,验证我的理论是否正确,SonarLint将文件视为测试而不是源,这也很好:

  • 控制台视图中,点击打开控制台下拉列表,选择 SonarLint控制台
  • 配置日志下拉列表中启用详细输出
  • 触发对测试文件的分析(进行更改并保存文件)

你应该看到这样的输出:

[
  baseDir: ...
  workDir: ...
  extraProperties: ...
  inputFiles: [
    /path/to/your/test/SonarProofTest.java [test]
  ]
]

文件名末尾的[test]表示该文件被视为测试文件。如果它不存在,那么该文件将被视为源文件。