2017-08-22 137 views
2

我已阅读所有关于SonarLint的主题与SonarQube不同步,但它只是不点击。SonarLint与SonarQube同步

我创建了一个简单的Maven项目来测试SonarLint & SonarQube。我为项目添加了sonar-maven插件,然后运行mvn声纳:声纳。

该项目已上传到SonarQube。当我看着SonarQube时,发现它显示鱿鱼:S2699(junit测试没有断言)作为拦截器。

但是,在eclipse中,SonarLint没有显示这样的问题。

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

我已经验证squid:S2699在服务器上处于活动状态。很明显,因为SonarQube显示它。

只有1质量配置文件:SonarWay。

编辑:我处于连接模式。

有没有人有任何想法为什么?

我使用:

  • 的Eclipse Neon.3版本(4.6.3)
  • 声纳Maven的插件3.0.2
  • 行家3.3.9(一个嵌入到Eclipse)
  • SonarLint 3.2.0.201706271328
  • SonarQube 6.3(建立19869)

下面是在S creenshots作为证明。

SonarLint screenshot

SonarQube screenshot

回答

0

看来你的测试文件而不是作为一个测试文件处理,但作为一个源文件。我根据报告的错误类型(删除未使用的变量)和错误类型而不是报告(无断言)说这种情况。如您所知,不同的规则适用于资源和测试。

SonarLint决定文件是否是一个测试文件或不基于测试文件的正则表达式喜好,你可以在窗口/首选项/ SonarLint找到。默认值为**/*Test.*,**/test/**/*, 这似乎在很多情况下都能正常工作,并且在查看屏幕截图时,它也应该适用于您的屏幕截图。 所以首先验证这个设置。 如果该值与默认值不同, 我建议将其更改回缺省值作为完整性检查。 然后你可以根据你的需要调整价值。

这也很好地验证我的理论是正确的约SonarLint处理该文件作为测试,而不是源,通过检查SonarLint控制台

  • 控制台看法,点击打开控制台下拉列表中,选择SonarLint控制台
  • 配置日志下拉使动词OSE输出
  • 触发测试文件的分析(做出改变并保存文件)

应该能看到输出是这样的:在文件名末尾

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

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

+0

是的。就是这样。不幸的是,这可能是一个不好的选择,因为这个问题仍然存在于一些非测试类中。不过,我不会继续这个问题。我感谢帮助! – Kev