mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-06-10 16:14:54 +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`:
|
The runner is the same `run.mjs`. The mode is `test`:
|
||||||
|
|
||||||
```bash
|
```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.
|
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`
|
## 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>/ # full app suite
|
||||||
node $RUN test tests/<app-name>/03-goods-receipt/ # one feature folder
|
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-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>/ --tags=smoke # by tag (intersection)
|
||||||
node $RUN test tests/<app-name>/ --grep='накладн' # by name regex
|
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
|
node $RUN test tests/<app-name>/ --bail --retry=1 # stop on first fail, allow 1 retry
|
||||||
|
|||||||
@@ -12,11 +12,14 @@
|
|||||||
## 1. Командная строка
|
## 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` | (все) | Фильтр тестов по тегам (пересечение) |
|
| `--tags=smoke,crud` | (все) | Фильтр тестов по тегам (пересечение) |
|
||||||
| `--grep=pattern` | (все) | Фильтр тестов по имени (регулярное выражение) |
|
| `--grep=pattern` | (все) | Фильтр тестов по имени (регулярное выражение) |
|
||||||
| `--bail` | false | Остановиться при первом падении |
|
| `--bail` | false | Остановиться при первом падении |
|
||||||
@@ -30,7 +33,7 @@ node run.mjs test [url] <dir|file> [флаги]
|
|||||||
| `--record` | false | Записывать видео для каждого теста (mp4 в `--report-dir`) |
|
| `--record` | false | Записывать видео для каждого теста (mp4 в `--report-dir`) |
|
||||||
| `-- <hookArgs…>` | — | Всё после `--` пробрасывается в `_hooks.mjs` как `hookArgs` (см. §6.1) |
|
| `-- <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
|
### Валидация CLI
|
||||||
|
|
||||||
@@ -876,6 +879,7 @@ tests/myapp/
|
|||||||
|--------|-----------|
|
|--------|-----------|
|
||||||
| Обход | Рекурсивный; файлы и каталоги, имя которых начинается на `_` или `.`, пропускаются |
|
| Обход | Рекурсивный; файлы и каталоги, имя которых начинается на `_` или `.`, пропускаются |
|
||||||
| Шаблон имени | Только `*.test.mjs` |
|
| Шаблон имени | Только `*.test.mjs` |
|
||||||
|
| Несколько путей | `node run.mjs test a.test.mjs b.test.mjs dir/` — наборы объединяются, дублируются и сортируются |
|
||||||
| Порядок | Сортировка по полному относительному пути (`sales/01` идёт до `warehouse/01`) |
|
| Порядок | Сортировка по полному относительному пути (`sales/01` идёт до `warehouse/01`) |
|
||||||
| `file` в отчёте | `relative(testDir, file)` с разделителем `/`, например `sales/01-order-create.test.mjs` |
|
| `file` в отчёте | `relative(testDir, file)` с разделителем `/`, например `sales/01-order-create.test.mjs` |
|
||||||
| Фильтр по пути с CLI | `node run.mjs test tests/myapp/sales/` запустит только подкаталог |
|
| Фильтр по пути с 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/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
|
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
|
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 = есть падения.
|
Exit code: 0 = все прошли, 1 = есть падения.
|
||||||
|
|
||||||
@@ -26,6 +29,7 @@ Exit code: 0 = все прошли, 1 = есть падения.
|
|||||||
|
|
||||||
| Флаг | Описание |
|
| Флаг | Описание |
|
||||||
|---|---|
|
|---|---|
|
||||||
|
| `--url=URL` | Переопределить базовый URL (по умолчанию — из `webtest.config.mjs`) |
|
||||||
| `--tags=A,B` | Запустить только тесты с одним из тегов |
|
| `--tags=A,B` | Запустить только тесты с одним из тегов |
|
||||||
| `--grep=regex` | Фильтр по имени теста |
|
| `--grep=regex` | Фильтр по имени теста |
|
||||||
| `--bail` | Остановиться на первой ошибке |
|
| `--bail` | Остановиться на первой ошибке |
|
||||||
|
|||||||
Reference in New Issue
Block a user