- Установи зависимости проекта:
opm install -l --dev - Если для локального запуска тестов в среде нет
1testrunner, установи его:opm install 1testrunner
src/BenchmarkOneScript/cmd/— CLIcore/annotations/— работа с аннотациямиcommon/— общие утилиты и CLI-парсерыconfig/— конфигурация запуска бенчмарковdescriptors/— дескрипторы бенчмарков и их коллекцииenvironment/— сведения о среде выполненияexporters/— экспорт результатов и артефактовparameters/— параметры бенчмарков и их источникиreporting/— построение и вывод отчетовrunning/— запуск, процессы, кейсыserialization/— сериализация настроек и результатов
BenchmarkOneScript.Extensions/— расширение типов для библиотекиChronometer/— хронометр для точных замеров времени
tests/— наборы тестовtasks/— служебные сценарии запуска тестов и покрытияsamples/api/— примеры использования APIbenchmarks/examples/— базовые примеры бенчмарковfeatures/— примеры пользовательских возможностей
handlers/— примеры обработчиков событийparamsSources/— примеры источников параметров
docs/— пользовательская документацияbuild/— служебные сценарии подготовки сборки
- Следуй существующему стилю в репозитории, не смешивай разные стили в одном файле.
- Публичную библиотечную логику держи в
core, CLI-специфику вcmd. - Для классов и модулей обычно используются регионы:
#Область ОбработчикиСобытий#Область ПрограммныйИнтерфейс#Область СлужебныйПрограммныйИнтерфейс#Область СлужебныеПроцедурыИФункции
- Публичные методы и функции располагай в
ПрограммныйИнтерфейс, вспомогательные процедуры и функции — вСлужебныеПроцедурыИФункции. - Служебный, но экспортный программный интерфейс модулей располагай в
СлужебныйПрограммныйИнтерфейс. - Непубличные переменные уровня класса или модуля именуй с префиксом
_. - Публичные методы, конструкторы и другие элементы программного интерфейса документируй комментариями, если трогаешь или добавляешь их.
- Для публичного API сохраняй принятый формат комментариев с блоками
ПараметрыиВозвращаемое значение, если они уместны. - Новые имена типов, методов и тестовых файлов делай предметными, а не техническими.
- Точечный запуск набора тестов:
1testrunner tests\Тесты.os - Точечный запуск отдельного теста:
1testrunner tests\Тесты.os ИмяТеста - Полный запуск всех тестов:
oscript tasks/test.os - Запуск покрытия:
oscript tasks/coverage.os
- Для обычной итерации предпочитай точечные прогоны.
- Полный прогон
oscript tasks/test.osне запускай без явного запроса пользователя. - Если меняется покрываемый код, добавь или обнови точечные тесты и запусти минимум релевантный набор.
- Некоторые интеграционные прогоны могут требовать запуск вне песочницы.
- Имена тестов начинаются с
ТестДолжен_.... - Для инициализации и завершения уровня набора используй
&Инициализацияи&Завершение. - Для подготовки и очистки отдельных тестов допустимо использовать пару
&Переди&После, если это действительно логика уровня отдельного теста. - В тестах обычно используются регионы:
#Область ОбработчикиСобытий#Область Тесты#Область СлужебныеПроцедурыИФункции
- Внутри тестов явно разделяй подготовку, действие и проверку комментариями:
// Подготовка// Действие// Проверка- если вызов и проверка неразделимы, допустимо
// Действие и Проверка
- Если меняются только входные данные и ожидания, предпочитай параметризованные тесты через
&Параметры(...).