Я мог бы успешно интегрировать инструмент автоматизации Sahi в SonarQube и получить результаты, но проблема заключается в том, чтобы определить набор правил для отчета о проблемах, связанных с скриптом sahi, и найти дублирующие функции.Как определить правила для определения проблем/дублировать функции для скрипта sahi в sonar qube? Поддерживает ли он только синтаксис javascript или java для анализа?
Вот фрагмент кода Сахи
Имя файла: 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")
}
}
же набор кода копируются, но с разными наименование
Для приведенного выше примера
Как определить правила для выявления проблем, если таковые имеются?
Как найти дублируемую функцию с тем же набором кода, но с разными именами функций? Это поможет уменьшить избыточные функции.
Как это отличается от кода JavaScript? –
@ Pierre-Yves-SonarSourceTeam Это сценарий сахи, а не точно JS. Все, что мы видим с подчеркиванием, - это встроенные API-интерфейсы sahi. Я хочу проверить в основном ниже в файле сценария sahi. Сколько функций определено? Каково количество аргументов, которые он принимает? Отступ? Дублированные строки кода? ли попытка ... уловить правильное исключение? если цикл должен иметь _isVisible API вместо _exists? и т. д., – sridattas
См. этот вопрос Q/A для обсуждения нахождение клонов кода в Java и JavaScript: http://stackoverflow.com/q/40799220/120163 –