Создание правил анализа кода
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. Если библиотека не содержит ошибок, после запуска Студии правило станет доступно в меню Общие > Анализ.