我已经阅读了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。
编辑:我处于连接模式。
有谁知道为什么?
我正在使用:
以下是截图作为证据。
答案 0 :(得分:0)
您的测试文件似乎不被视为测试文件,而是视为源文件。我根据报告的错误类型(删除未使用的变量)和 not 报告的错误类型(无断言)来说明这一点。 您可能知道,不同的规则适用于源和测试。
SonarLint根据测试文件正则表达式首选项决定文件是否为测试文件,您可以在 Window / Preferences / SonarLint 中找到该首选项。默认值为**/*Test.*,**/test/**/*
,
这似乎适用于各种情况,看看你的截图,它也适用于你的。
首先验证此设置。
如果该值与默认值不同,
我建议将其更改为默认值作为完整性检查。
然后你可以根据你的需要调整价值。
通过检查 SonarLint控制台,验证我的理论是否正确,SonarLint将文件视为测试而不是源,这也很好:
你应该看到这样的输出:
[
baseDir: ...
workDir: ...
extraProperties: ...
inputFiles: [
/path/to/your/test/SonarProofTest.java [test]
]
]
文件名末尾的[test]
表示该文件被视为测试文件。如果它不存在,那么该文件将被视为源文件。