SonarQube无法在CS代码中检测到重复

Joh*_*nes 2 c# msbuild sonarqube

我正在测试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;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我正在使用MSBuild Runner和MSBuil 14运行SonarQube版本5.6。

对于如何配置我的项目进行代码复制检测,我找不到任何帮助。据我所知,这应该是开箱即用的一部分。项目概述显示“ 0%”重复的代码。

我发现这个答案并没有真正告诉我任何事情。

Nic*_*eam 5

SonarQube复制文档提供了很好的见解:

只要至少有10行代码(可以被属性覆盖)上至少有100个连续和重复的令牌(可以被属性sonar.cpd。$ {language} .minimumTokens覆盖),就认为该代码是重复的。 sonar.cpd。$ {language} .minimumLines)。

因此,在您的示例中添加更多案例会触发重复检测。