2016-11-15 13 views
0

Я мог бы успешно интегрировать инструмент автоматизации 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") 
     } 
    } 

же набор кода копируются, но с разными наименование

Для приведенного выше примера

  • Как определить правила для выявления проблем, если таковые имеются?

    Как найти дублируемую функцию с тем же набором кода, но с разными именами функций? Это поможет уменьшить избыточные функции.

+0

Как это отличается от кода JavaScript? –

+0

@ Pierre-Yves-SonarSourceTeam Это сценарий сахи, а не точно JS. Все, что мы видим с подчеркиванием, - это встроенные API-интерфейсы sahi. Я хочу проверить в основном ниже в файле сценария sahi. Сколько функций определено? Каково количество аргументов, которые он принимает? Отступ? Дублированные строки кода? ли попытка ... уловить правильное исключение? если цикл должен иметь _isVisible API вместо _exists? и т. д., – sridattas

+0

См. этот вопрос Q/A для обсуждения нахождение клонов кода в Java и JavaScript: http://stackoverflow.com/q/40799220/120163 –

ответ

0

Даже если эти файлы имеют ссылки на внешние API, они, похоже, используют стандартный синтаксис JavaScript. Вы должны иметь возможность анализировать такие файлы с помощью плагина SonarQube JavaScript. Если имена ваших файлов заканчиваются на «sah», вы должны иметь следующую строку в вашем sonar-project.properties:

sonar.javascript.file.suffixes=.js,.sah 
+0

Спасибо за ваше предложение, это помогло. Но я хочу определить несколько новых правил и скрыть/удалить правила. Является ли это возможным? – sridattas

+0

Вы можете [писать собственные правила поверх плагина JavaScript] (http://docs.sonarqube.org/display/PLUG/Custom+Rules+for+JavaScript). Вы можете деактивировать существующие правила в своем [профиле качества] (http://docs.sonarqube.org/display/SONAR/Quality+Profiles). –

 Смежные вопросы

  • Нет связанных вопросов^_^