0

我可以成功地将 Sahi 自动化工具集成到 SonarQube 并可以获得结果,但问题是定义一组规则来报告与 sahi 脚本相关的问题并找到重复的函数。

这是Sahi的代码片段

文件名:sample1.sah

function eno_selectFromCombo($Field_Name, $Value) //Function name
{
    if($Value!="")
    {   
        _setStrictVisibilityCheck(true);
        if(_exists(_select($Field_Name)))
        {
            _assertEqual(false, _select($Field_Name).disabled)
            _setSelected(_select($Field_Name),$Value);
        }
        else
        {
            onScriptError($Field_Name + " doesn't exist ")
        }
        _setStrictVisibilityCheck(false);
    }
    else
    {   
        _log($Field_Name + " is set with default value")
    }
}

文件名:sample2.sah

function eno_selectCombo($Field_Name, $Value) //Different function name but same set of code
    {
        if($Value!="")
        {   
            _setStrictVisibilityCheck(true);
            if(_exists(_select($Field_Name)))
            {
                _assertEqual(false, _select($Field_Name).disabled)
                _setSelected(_select($Field_Name),$Value);
            }
            else
            {
                onScriptError($Field_Name + " doesn't exist ")
            }
            _setStrictVisibilityCheck(false);
        }
        else
        {   
            _log($Field_Name + " is set with default value")
        }
    }

复制了相同的代码集但名称不同

对于上面的例子,

  • 我如何定义规则来识别问题(如果有)?

    如何找到具有相同代码集但具有不同函数名称的重复函数?这将有助于减少冗余功能

4

1 回答 1

0

即使这些文件引用了外部 API,它们似乎也使用标准的 JavaScript 语法。您应该能够使用 SonarQube JavaScript 插件分析此类文件。如果您的文件名以“sah”结尾,您的 sonar-project.properties 中应该有以下行:

sonar.javascript.file.suffixes=.js,.sah
于 2016-11-25T10:02:43.977 回答