2017-08-22 237 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