首页 文章

SonarLint与SonarQube同步

提问于
浏览
2

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

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

该项目已上传至SonarQube . 当我查看SonarQube时,我看到它显示squid: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(嵌入在eclipse中的那个)

  • SonarLint 3.2.0.201706271328

  • SonarQube 6.3(build 19869)

以下是截图作为证据 .

SonarLint screenshot

SonarQube screenshot

1 回答

  • 0

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

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

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

    • Console 视图中,单击 Open Console 下拉列表,选择 SonarLint Console

    • Configure logs 下拉列表中启用 Verbose output

    • 触发对测试文件的分析(进行更改并保存文件)

    您应该看到如下输出:

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

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

相关问题