2016-03-02 80 views
2

Sonar抱怨一條線。忽略與Sonar的一條線

Thread.sleep(SLEEP_TIME); // NOSONAR 

它的問題是,

「的Thread.sleep」不應該在測試

在測試中使用了Thread.sleep使用的只是一般一個壞主意。它創建脆弱的測試,根據環境(「我的機器上通過!」)或負載,可能無法預料地失敗。

它是有道理的,這應該是固定的。但我的問題是:爲什麼NOSONAR部分在這裏沒有任何影響?它似乎可以在其使用的代碼的其他部分工作,例如,與

public static final String PASSWORD_FILE_NAME = "secret.txt"; // NOSONAR 

它不再抱怨在代碼中有一個硬編碼的密碼。那麼爲什麼它不適用於Thread.sleep()的情況呢?

我可以在SonarQube和IntelliJ的SonarLint插件中看到問題。

回答

1

你基本上是達不到這個問題:https://jira.sonarsource.com/browse/SONARJAVA-1113

這是該// NOSONAR沒有在測試中考慮。

這已被固定在聲納Java插件版本(3.11)

(在一個側面說明的最新版本,使用NOSONAR不是很大海事組織,你應該跟蹤問題,你不想使用SonarQube修復,而不是使用與特定外部工具鏈接的註釋混淆您的代碼)

+0

謝謝。關於旁註的一個側面提示:SonarQube的確如此,但目前SonarLint插件並不適用。 – ytg

+0

@ytg確實! :) – benzonico