You've already forked OpenIntegrations
mirror of
https://github.com/Bayselonarrend/OpenIntegrations.git
synced 2026-05-20 10:00:46 +02:00
51 lines
4.6 KiB
Markdown
51 lines
4.6 KiB
Markdown
# Руководство для AGENTS
|
|
|
|
## Каноничный исходный код
|
|
|
|
- Основная реализация библиотеки находится в `src/ru/BSL/OpenIntegrations`.
|
|
- Если поведение кода и тестов расходится, в первую очередь считать этот каталог источником истины.
|
|
|
|
## Каноничные тесты
|
|
|
|
- Основные BSL-тесты находятся в `src/ru/BSL/Tests`.
|
|
- При разборе бизнес-логики сначала анализировать эти тесты, и только затем зеркала.
|
|
|
|
## Зеркало OneScript
|
|
|
|
- Зеркальные файлы OneScript находятся в `src/ru/OInt` (включая `src/ru/OInt/tests`).
|
|
- Использовать этот каталог для проверки CLI/runtime-паритета, но не как первый источник при разборе BSL-регрессий.
|
|
|
|
## Соглашения по тестовым модулям
|
|
|
|
- У каждого функционального модуля есть два связанных тестовых модуля с тем же базовым именем:
|
|
- основные тесты с префиксом `OPIt_`
|
|
- тесты CLI с префиксом `OPItc_`
|
|
- функциональные модули используют префикс `OPI_`
|
|
- Не редактировать модули `OPItc_` вручную: CLI-тесты генерируются автоматически в CI-пайплайне из модулей `OPIt_`.
|
|
- Каждый тестовый модуль должен содержать:
|
|
- область `ЗапускаемыеТесты` с процедурами-обертками
|
|
- область `АтомарныеТесты` с атомарными проверками
|
|
- Запускаемые тесты вызывают несколько атомарных.
|
|
- Количество атомарных тестов должно соответствовать количеству методов функционального модуля.
|
|
- Количество запускаемых тестов должно соответствовать количеству областей функционального модуля.
|
|
- Текст тестовых модулей используется для формирования примеров кода в документации
|
|
- Служебные комментарии `//SKIP` и `//END` используются для исключения частей кода теста при формировании примера для документации. `// SKIP` позволяет исключить конкретную строку внутри теста, `//END` - завершает запись примера. Весь служебный код, который идет после `//END` не попадает в пример кода для документации
|
|
- При формировании атомарных тестов нельзя выносить повторяющийся код в служебные функции, так как это может привести к недопониманию при их использовании в качестве примеров для документации
|
|
- В спорных/неочевидных ситуациях ориентироваться на существующие тесты как на каноничные примеры.
|
|
|
|
## Реестр и функции проверок
|
|
|
|
- Каждый запускаемый тест должен быть указан в `ПолучитьТаблицуТестов` в модуле `OPI_ПолучениеДанныхТестов`.
|
|
- В `OPI_ПолучениеДанныхТестов` также находятся функции-проверки:
|
|
- по одной функции-проверке на каждый атомарный тест
|
|
- с возможным ветвлением внутри по параметру `Вариант`
|
|
|
|
## Правила именования
|
|
|
|
- Формат имени атомарного теста:
|
|
- `<ИмяМодуляБезПрефикса>_<ИмяМетодаФункциональногоМодуля>`
|
|
- Формат имени запускаемого теста:
|
|
- `<ЛюбоеСокращениеИмениМодуляБезПрефикса><ИмяОбласти>`
|
|
- Формат имени функции-проверки:
|
|
- `Проверка_<ИмяАтомарногоТеста>`
|