1c-vanessa-steps
Реестр шагов Vanessa Automation (BDD для 1С:Предприятие) - 1569 шагов с описаниями, поиск шага по смыслу и валидация готового сценария .feature. Используй ВСЕГДА, когда пишешь, правишь или проверяешь
SKILL.mdskills/1c-vanessa-steps/SKILL.md
GitHubШаги Vanessa Automation: поиск и валидация
Библиотека из 1569 шагов Vanessa Automation с описаниями и типами, плюс два инструмента: поиск подходящего шага и проверка готового сценария.
Зачем. Шаг Gherkin - это не свободный текст, а вызов конкретной реализации из Vanessa. Модель, не имея реестра, пишет правдоподобную фразу ("И я телепортирую документ в прошлое"), сценарий выглядит корректно и падает только на прогоне в базе - дорого и не сразу понятно. Реестр закрывает это на этапе написания.
When to Use
- Пишешь новый сценарий Vanessa - сначала найди шаги, потом составляй из найденного.
- Правишь чужой сценарий и не уверен, существует ли шаг.
- Получил сценарий от заказчика или из другого проекта - проверь перед запуском.
- Нужно понять, каким шагом делается конкретное действие (открыть форму, заполнить поле, проверить значение, подключить TestClient, работать с файлами).
When NOT to Use
- Юнит-тесты на YaXUnit - это не Gherkin, реестр к ним не относится (см.
testing-patterns.md). - Отладка падающего прогона, где шаг ЕСТЬ, но ведет себя не так - это про данные и конфигурацию, а не про реестр шагов.
Порядок работы
1. Найти шаг вместо того, чтобы его сочинить
python skills/1c-vanessa-steps/scripts/search_steps.py --query "открыть форму документа" --top 5 --format human
python skills/1c-vanessa-steps/scripts/search_steps.py --category UI --subcategory Формы --format human
python skills/1c-vanessa-steps/scripts/search_steps.py --stats
Запрос - на русском, словами задачи. Вывод --format json удобен для дальнейшей обработки,
human - для чтения.
Критерий: каждый шаг будущего сценария найден в реестре. Не нашел - это сигнал, что действие делается иначе (другим шагом или последовательностью), а НЕ разрешение придумать формулировку.
2. Собрать сценарий
Структура файла, обязательные строки заголовка, типовые связки - references/scenario-templates.md.
Правила формулировок и работа с параметрами шагов - references/writing-scenarios.md.
3. Проверить перед сдачей
python skills/1c-vanessa-steps/scripts/validate.py "путь/к/сценарию.feature"
Отчет дает: сколько шагов валидно, какие строки не найдены в реестре, и рекомендации. Ошибки структуры (нет строки языка или кодировки) он тоже ловит.
Критерий завершения: невалидных шагов ноль. Один невалидный шаг - сценарий не готов, даже если остальные девяносто девять на месте.
4. Разбор спорного случая
Когда шаг похож на существующий, но не совпадает дословно, помогает разбор по смыслу:
references/semantic-validation.md - как сопоставляются параметры и почему близкий по виду шаг
может быть другим шагом.
Состав
| Путь | Что |
|---|---|
data/steps-library.json |
реестр: 1569 шагов, 13 категорий, 374 подкатегории |
scripts/search_steps.py |
поиск по запросу, категории, подкатегории; статистика |
scripts/validate.py |
проверка .feature: существование шагов и структура файла |
scripts/indexer.py |
построение индексов для ускорения поиска на больших прогонах |
references/steps-compact.md |
весь реестр компактным списком - когда нужен просмотр глазами |
references/writing-scenarios.md |
как писать сценарии: формулировки, параметры, типовые ошибки |
references/scenario-templates.md |
готовые шаблоны сценариев |
references/semantic-validation.md |
сопоставление шагов по смыслу, разбор параметров |
Зависимостей нет - только стандартная библиотека Python 3.8+.
Ограничения
- Реестр - снимок библиотеки шагов на момент сборки. Своя сборка Vanessa, плагины или шаги из подключенных библиотек проекта в нем отсутствуют: шаг, не найденный валидатором, может быть проектным. Проверять по своей поставке, а не считать вывод валидатора приговором.
- Валидатор проверяет СУЩЕСТВОВАНИЕ шага и структуру файла, а не осмысленность сценария. Логику проверки, порядок шагов и тестовые данные он не оценивает.
Источник
Реестр шагов и инструменты поиска и валидации взяты из проекта va-ai (MIT, (c) Nikolay Shirokov) и адаптированы под раскладку этого набора. Сам Vanessa Automation - отдельный проект, см. vanessa-automation.