我可以成功地将 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")
}
}
复制了相同的代码集但名称不同
对于上面的例子,
我如何定义规则来识别问题(如果有)?
如何找到具有相同代码集但具有不同函数名称的重复函数?这将有助于减少冗余功能