mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-06-10 08:04:56 +03:00
docs(web-test): актуализация контракта test CLI (несколько путей, --url)
Спека §1, regress.md, README приведены в соответствие новому контракту: сигнатура `test <dir|file>...`, несколько путей (дедуп + сортировка), флаг --url=, заметка про резолв webtest.config.mjs/_hooks.mjs от каталога первого пути. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -5,9 +5,11 @@ Use this when the user asks to cover a 1C solution with automated regression tes
|
||||
The runner is the same `run.mjs`. The mode is `test`:
|
||||
|
||||
```bash
|
||||
node $RUN test [url] <dir|file> [flags]
|
||||
node $RUN test <dir|file>... [flags]
|
||||
```
|
||||
|
||||
Positional args are test paths (files and/or dirs, multiple allowed). URL is NOT positional — it comes from `webtest.config.mjs`; override with `--url=<url>`.
|
||||
|
||||
Tests live next to the project they cover (not inside the skill). Convention: `tests/` at the project root, with `_hooks.mjs` and `webtest.config.mjs` at the suite root. Tests are ES modules with `*.test.mjs` suffix.
|
||||
|
||||
## When to choose `test` over `exec`
|
||||
@@ -362,6 +364,7 @@ Each `params` entry becomes its own test in the report. `{key}` placeholders in
|
||||
node $RUN test tests/<app-name>/ # full app suite
|
||||
node $RUN test tests/<app-name>/03-goods-receipt/ # one feature folder
|
||||
node $RUN test tests/<app-name>/02-counterparties/01-create.test.mjs # one file
|
||||
node $RUN test tests/<app-name>/02-x.test.mjs tests/<app-name>/05-y.test.mjs # several files
|
||||
node $RUN test tests/<app-name>/ --tags=smoke # by tag (intersection)
|
||||
node $RUN test tests/<app-name>/ --grep='накладн' # by name regex
|
||||
node $RUN test tests/<app-name>/ --bail --retry=1 # stop on first fail, allow 1 retry
|
||||
|
||||
@@ -12,11 +12,14 @@
|
||||
## 1. Командная строка
|
||||
|
||||
```
|
||||
node run.mjs test [url] <dir|file> [флаги]
|
||||
node run.mjs test <dir|file>... [флаги]
|
||||
```
|
||||
|
||||
Позиционные аргументы — это пути к тестам (файлы `*.test.mjs` и/или каталоги), можно указать несколько: `node run.mjs test a.test.mjs b.test.mjs dir/`. Файлы из каталогов обходятся рекурсивно; итоговый набор дедуплицируется и сортируется (порядок по числовым префиксам `00-`, `01-`, … сохраняется независимо от порядка аргументов). Путь, которого нет на диске, → ранняя понятная ошибка (аргумент, похожий на URL, подскажет про `--url=`).
|
||||
|
||||
| Флаг | По умолчанию | Описание |
|
||||
|------|-------------|----------|
|
||||
| `--url=URL` | (из конфига) | Переопределить базовый URL дефолтного контекста |
|
||||
| `--tags=smoke,crud` | (все) | Фильтр тестов по тегам (пересечение) |
|
||||
| `--grep=pattern` | (все) | Фильтр тестов по имени (регулярное выражение) |
|
||||
| `--bail` | false | Остановиться при первом падении |
|
||||
@@ -30,7 +33,7 @@ node run.mjs test [url] <dir|file> [флаги]
|
||||
| `--record` | false | Записывать видео для каждого теста (mp4 в `--report-dir`) |
|
||||
| `-- <hookArgs…>` | — | Всё после `--` пробрасывается в `_hooks.mjs` как `hookArgs` (см. §6.1) |
|
||||
|
||||
URL необязателен, если в каталоге тестов есть `webtest.config.mjs`. CLI URL переопределяет URL дефолтного контекста.
|
||||
URL не передаётся позиционно — он берётся из `webtest.config.mjs` в каталоге тестов, а флаг `--url=` переопределяет URL дефолтного контекста. `webtest.config.mjs` и `_hooks.mjs` резолвятся от каталога **первого** пути, поэтому перечисляемые файлы должны лежать в одной папке сьюта.
|
||||
|
||||
### Валидация CLI
|
||||
|
||||
@@ -876,6 +879,7 @@ tests/myapp/
|
||||
|--------|-----------|
|
||||
| Обход | Рекурсивный; файлы и каталоги, имя которых начинается на `_` или `.`, пропускаются |
|
||||
| Шаблон имени | Только `*.test.mjs` |
|
||||
| Несколько путей | `node run.mjs test a.test.mjs b.test.mjs dir/` — наборы объединяются, дублируются и сортируются |
|
||||
| Порядок | Сортировка по полному относительному пути (`sales/01` идёт до `warehouse/01`) |
|
||||
| `file` в отчёте | `relative(testDir, file)` с разделителем `/`, например `sales/01-order-create.test.mjs` |
|
||||
| Фильтр по пути с CLI | `node run.mjs test tests/myapp/sales/` запустит только подкаталог |
|
||||
|
||||
@@ -11,6 +11,9 @@ node .claude/skills/web-test/scripts/run.mjs test tests/web-test/
|
||||
# Один файл
|
||||
node .claude/skills/web-test/scripts/run.mjs test tests/web-test/02-crud.test.mjs
|
||||
|
||||
# Несколько файлов (позиционные = пути к тестам, можно сколько угодно)
|
||||
node .claude/skills/web-test/scripts/run.mjs test tests/web-test/04-selectvalue.test.mjs tests/web-test/11-report.test.mjs
|
||||
|
||||
# Несколько по фильтру тегов
|
||||
node .claude/skills/web-test/scripts/run.mjs test tests/web-test/ --tags=table,smoke
|
||||
|
||||
@@ -18,7 +21,7 @@ node .claude/skills/web-test/scripts/run.mjs test tests/web-test/ --tags=table,s
|
||||
node .claude/skills/web-test/scripts/run.mjs test tests/web-test/ --grep=multi
|
||||
```
|
||||
|
||||
URL не указываем — берётся из `webtest.config.mjs` (`contexts.a.url` = `http://localhost:9191/webtest-runner/ru_RU`).
|
||||
URL не передаём позиционно — берётся из `webtest.config.mjs` (`contexts.a.url` = `http://localhost:9191/webtest-runner/ru_RU`). Переопределить можно флагом `--url=<url>`.
|
||||
|
||||
Exit code: 0 = все прошли, 1 = есть падения.
|
||||
|
||||
@@ -26,6 +29,7 @@ Exit code: 0 = все прошли, 1 = есть падения.
|
||||
|
||||
| Флаг | Описание |
|
||||
|---|---|
|
||||
| `--url=URL` | Переопределить базовый URL (по умолчанию — из `webtest.config.mjs`) |
|
||||
| `--tags=A,B` | Запустить только тесты с одним из тегов |
|
||||
| `--grep=regex` | Фильтр по имени теста |
|
||||
| `--bail` | Остановиться на первой ошибке |
|
||||
|
||||
Reference in New Issue
Block a user