Перейти к содержанию

Раздел 16. Инструмент Sonar-bsl-toolkit

Назначение:

  • показ «AST» по выбранному модулю,

  • отладка «XPath-выражений» для правил (https://ru.wikipedia.org/wiki/XPath).

Замечания создаются на основании значений, возвращаемых выражением XPath. Если выражение XPath возвращает:

  • один или несколько узлов AST, тогда создается замечание на строку кода с заданным сообщением для каждого узла,

  • булево и возвращаемое значение равно "Истина", тогда создается замечание с заданным сообщением на файл,

  • что угодно другое, тогда замечание не создается.

Использование:

Для работы приложения необходимо, чтобы на машине была установлена JRE 8.

Запуск приложения осуществляется либо вручную, либо из командной строки

java -jar sonar-bsl-toolkit-1.0.jar <путь к sonar-bsl-plugin.jar>

Параметр <путь к sonar-bsl-plugin.jar> не является обязательным, его можно не указывать.

image-20200812131902603

На вкладке «Configurations» в поле «Path to Sonar-bsl-plugin.jar» указываем путь к плагину, если он не был указан при запуске в командной строке

image-20200812131915678

Кнопкой «Open source code» выбираем проверяемый исходный модуль с расширением “bsl”

В правом окне будет сформировано синтаксическое дерево AST

image-20200812131929463

Каждая элемент дерева, содержит поля:

  • Имя узла AST (Например, METHOD_DEFINITION)
  • tokenValue – значение элемента
  • tokenLine – номер строки
  • tokenColumn – номер колонки, с которой начинается элемент, в текущей строке

Используя выделения программного кода слева, а также дерева справа можно производить перемещение по дереву.

При лексической ошибке в теле проверяемого модуля (например, неверном использовании инструкции препроцессора ), разбор синтаксического дерева может падать с ошибкой, в этом случае требуется произвести срочный рефакторинг кода и устранить причину вызывающую проблему.

image-20200812132019898

Для разбора модулей, содержащих язык запросов, необходимо на вкладке «Configuration» в поле «Use Query parse» указать значение «Yes»

image-20200812132030656

Использование собственных правил XPath

«SonarQube 1C (BSL) Plugin» поддерживает использование XPath-запросов для анализа программного кода. Это позволяет конечному разработчику создавать простые правила проверки, специфичные для эксплуатирующей компании, например правильность оформления комментариев.

Для отладки написанных правил используйте инструмент «Sonar-bsl-toolkit».

К примеру, XPath-запрос вида:

//FUNCTION_NAME[@tokenLine=41]

Вернёт имя функции на 41 строке

image-20200812132914492

После написания правила и его отладки, вы можете добавить его на сервер SonarQube. Для этого:

  • Войдите в систему как администратор профиля качества,
  • Перейти на страницу правил,
  • Выберите язык «1C (BSL)», для которого вы хотите создать правило XPath,
  • Отметьте критерий «Шаблон» и выберите «Показать только шаблоны»,
  • Найдите шаблон правила XPath:

image-20200812132940528

  • Щелкните по кнопке «Создать», чтобы создать новый экземпляр правила XPath,

image-20200812132950850

    Отобразится форма:

image-20200812133005504

  • Вставьте запрос XPath (он должен соответствовать XPath 1.0), который вы написали и протестировали с помощью набора инструмента «Sonar-bsl-toolkit»,
  • Как только ваше правило будет добавлено в «SonarQube», активируйте его в профиле качества и запустите анализ.