SonarQube不检测cs代码中的重复

本文关键字:代码 检测 cs SonarQube | 更新日期: 2023-09-27 18:05:53

我正在测试SonarQube,下面的代码存在于测试项目中:

public class Widgetor
{
    internal static int SelectValue(int ret)
    {
        switch(ret)
        {
            case 0: return 1;
            case 4: return 7;
            case -1: return 2;
            case 2: return -1;
            default: return 0;
        }
    }
    internal static int SelectValue_Copy(int ret)
    {
        switch (ret)
        {
            case 0: return 1;
            case 4: return 7;
            case -1: return 2;
            case 2: return -1;
            default: return 0;
        }
    }
}

我正在运行SonarQube 5.6版本与MSBuild Runner和MSBuild 14。

我找不到关于如何配置我的项目进行代码发布检测的任何帮助。据我所知这应该是开箱即用的一部分。项目概览显示"0%"的重复代码。

我找到了这个答案,它并没有真正告诉我什么。

SonarQube不检测cs代码中的重复

SonarQube Duplications文档给出了一个很好的见解:

只要有至少100个连续和重复的标记(可以用属性sonar.cpd.${language}. minimumtokens覆盖)分布在至少10行代码中(可以用属性sonar.cpd.${language}. minimumlines覆盖),就认为一段代码是重复的。

因此,在示例中添加更多的大小写确实会触发重复检测。