我已经阅读了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)
以下是截图作为证据 .
1 回答
您的测试文件似乎不被视为测试文件,而是视为源文件 . 我根据报告的错误类型(删除未使用的变量)和未报告的错误类型(无断言)来说明这一点 . 您可能知道,不同的规则适用于源和测试 .
SonarLint根据 Test file regular expressions 首选项决定文件是否为测试文件,您可以在 Window / Preferences / SonarLint 中找到该首选项 . 默认值为
**/*Test.*,**/test/**/*
,这似乎适用于各种情况,并且查看截图,它也适用于您的 . 首先验证此设置 . 如果该值与默认值不同,我建议将其更改为默认值作为完整性检查 . 然后你可以根据你的需要调整 Value .通过检查 SonarLint Console ,验证我的理论是否正确,SonarLint将文件视为测试而不是源,这也是很好的:
在 Console 视图中,单击 Open Console 下拉列表,选择 SonarLint Console
在 Configure logs 下拉列表中启用 Verbose output
触发对测试文件的分析(进行更改并保存文件)
您应该看到如下输出:
文件名末尾的
[test]
表示该文件被视为测试文件 . 如果它不存在,那么该文件被视为源文件 .