声纳抱怨一条线。
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插件中看到这个问题。
答案 0 :(得分:3)
您基本上遇到了这个问题:https://jira.sonarsource.com/browse/SONARJAVA-1113
在测试中没有考虑// NOSONAR
。
最新版本的声纳java插件发行版(3.11)已修复此问题
(另一方面,使用NOSONAR并不是很好的IMO,你应该跟踪你不想使用SonarQube修复的问题,而不是使用链接到特定外部工具的注释来混淆你的代码)