Создание правил анализа кода
Last updated
Last updated
Подробнее о назначении механизма см. в разделе Анализ проекта.
Запустите Visual Studio.
Выберите Create a new project с типом Class Library (.NET Framework) либо Class Library (поддерживаются .NET Framework 4.6.1 и .NET Standard 2.0).
Введите имя проекта. Имя проекта и библиотеки dll должны начинаться с префикса Primo.
Найдите в папке Primo Studio сборку Primo.ProjectAnalyzer.Dto.dll
и добавьте ее в Dependencies проекта:
Создайте класс (Add ➝ Class...), который будет содержать правило. Для этого надо унаследовать интерфейс Primo.ProjectAnalyzer.IAnalysisRule.
Каждый класс — это отдельное правило анализа.
Пример правила ST-PR-003, проверяющего вложенность диаграмм:
IAnalysisRule
Code
Код правила
Name
Наименование правила
Description
Описание правила
HelpUrl
Ссылка на описание
Areas
Области, к которым применимо правило (Проект, Процесс, Элемент)
DefaultAction
Действие по умолчанию (Info, Error, Warning, Verbose)
Arguments
Аргументы правила
Inspect(...)
Методы, осуществляющие проверку правила
Reset()
Вызывается при сбросе правила в состояние по умолчанию
AnalysisRuleArg
Key
Ключ-идентификатор
Name
Наименование аргумента
RegEx
Регулярное выражение, применяемое при проверке ввода аргумента
Value
Значение аргумента
RuleResult
Level
Действие
HasErrors
Признак наличия ошибки (для Error, Warning и Vaerbose). Info попадает в результат всегда
RecommendationMessage
Текст рекомендации
Messages
Сообщения
IRobotProject – информация о проекте.
Project
Данные проекта
Items
Массив файлов проекта
Dependencies
Массив зависимостей проекта
GetAllProcesses()
Возвращает все процессы проекта
IRobotProcess – информация о процессе.
FileName
Имя файла
ProcessType
Тип процесса
IsTestCase
Признак тестового случая
UseArgs
Признак использования аргументов
ScriptType
Тип скрипта
RootContainer
Корневой контейнер (для последовательности)
Components
Элементы процесса (для диаграммы)
GlobalVariables
Перменные
Arguments
Аргументы
GetAllElements()
Возвращает все элементы процесса
SerializationComponent – информация об элементе.
ClassName
Имя класса
AssemblyName
Имя сборки
Properties
Массив свойств (Name – имя, Value – значение)
SerializationContainer : SerializationComponent – информация об элементе-контейнере.
Components
Массив элементов контейнера
Для отладки можно использовать класс Inspector.
Пример:
В результате сборки нового правила будет получена библиотека Primo.*.dll. Ее нужно скопировать и добавить в папку Primo Studio. Если библиотека не содержит ошибок, после запуска Студии правило станет доступно в меню Общие > Анализ.