【问题标题】:Ignoring a line with Sonar使用声纳忽略一条线
【发布时间】:2016-03-02 16:38:31
【问题描述】:

声纳抱怨一条线。

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 插件中看到这个问题。

【问题讨论】:

    标签: sonarqube


    【解决方案1】:

    你基本上遇到了这个问题:https://jira.sonarsource.com/browse/SONARJAVA-1113

    // NOSONAR 在测试中没有被考虑在内。

    此问题已在最新版本的声纳 java 插件版本 (3.11) 中修复

    (附带说明,使用 NOSONAR 不是很好的 IMO,您应该跟踪您不想使用 SonarQube 修复的问题,而不是使用链接到特定外部工具的 cmets 使您的代码混乱)

    【讨论】:

    • 谢谢。关于旁注的旁注:SonarQube 是这样,但 SonarLint 插件目前不是一个选项。
    • 不同意“在一边”的注释。当您有充分的理由禁用一条线路时,我个人不想再被“问题”所困扰。添加注释 // NOSONAR 仍然使您能够通过简单的搜索来跟踪这些异常。您可以添加额外的注释来解释异常的原因。
    • 如何忽略 XML 文件中的一行?
    猜你喜欢
    • 1970-01-01
    • 2014-01-18
    • 2020-01-21
    • 2018-07-04
    • 2017-12-19
    • 1970-01-01
    • 2022-01-14
    • 2019-12-17
    • 1970-01-01
    相关资源
    最近更新 更多