mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-06-13 17:34:57 +03:00
docs(web-test): §16.1 — вложенные каталоги (что работает, что нет)
Зафиксирована конвенция: - Discovery рекурсивный, путь попадает в отчёт. - Per-folder hooks/config/context-default НЕ поддерживаются (by design). - Группировку в отчётах делать через tags, не через путь. - Сортировка по полному пути (`warehouse/01-x` после `sales/02-y`) — для глобального порядка нужны 3-значные префиксы или теги-фазы. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -929,6 +929,44 @@ export default async function({ fillFields, getFormState, assert }, { type, fiel
|
||||
|
||||
Полный регресс — **19/19** (~9 минут на warm-стенде).
|
||||
|
||||
### 16.1. Вложенные каталоги
|
||||
|
||||
Discovery (`run.mjs:900`) обходит дерево `testDir` рекурсивно, поэтому
|
||||
тесты можно раскладывать по подкаталогам без правок раннера:
|
||||
|
||||
```
|
||||
tests/web-test/
|
||||
sales/
|
||||
01-order-create.test.mjs
|
||||
02-order-post.test.mjs
|
||||
warehouse/
|
||||
01-receipt.test.mjs
|
||||
```
|
||||
|
||||
**Что работает:**
|
||||
|
||||
| Аспект | Поведение |
|
||||
|--------|-----------|
|
||||
| Обнаружение | Рекурсивный walk; файлы/каталоги на `_`/`.` пропускаются |
|
||||
| Порядок | `files.sort()` по полному относительному пути (`sales/01` идёт до `warehouse/01`) |
|
||||
| `file` в отчёте | `relative(testDir, file)` с `/`, например `sales/01-order-create.test.mjs` |
|
||||
| CLI-фильтр по пути | `node run.mjs test tests/web-test/sales/` запустит только подкаталог |
|
||||
| Конкретный файл | `node run.mjs test tests/web-test/sales/01-order-create.test.mjs` |
|
||||
|
||||
**Что НЕ поддержано** (сознательно, чтобы держать модель простой):
|
||||
|
||||
- **Per-folder `_hooks.mjs`.** Раннер ищет `_hooks.mjs` только в корне `testDir`. Подкаталоги свои хуки не получают.
|
||||
- **Per-folder `webtest.config.mjs`.** Тоже только в корне.
|
||||
- **Suite-концепция в отчётах.** Allure suite labels из дерева каталогов не строятся; группируйте через `tags`.
|
||||
- **Per-folder context default.** Каждый тест объявляет `context`/`contexts` сам; от пути контексты не наследуются.
|
||||
|
||||
**Конвенции:**
|
||||
|
||||
1. **Папки — для организации**, не для механики. Если хочется shared setup для «процесса» — клади в глобальный `_hooks.mjs.beforeAll` или в per-test `setup`/`teardown`.
|
||||
2. **Группировку в отчётах** делай через `tags: ['sales']`, не через путь. Это даёт фильтрацию (`--tags=sales`) и работает в Allure/JUnit без дополнительной разметки.
|
||||
3. **«Запустить только sales»** — двумя путями: `tests/web-test/sales/` (по каталогу) или `--tags=sales` (по тегу). Оба работают, выбирайте удобный.
|
||||
4. **Сортировка по полному пути** означает, что `warehouse/01-x` запустится ПОСЛЕ `sales/02-y`. Для строгого глобального порядка используйте 3-значные префиксы (`010-`/`020-`/...) либо явные теги-фазы.
|
||||
|
||||
---
|
||||
|
||||
## 17. Дорожная карта реализации
|
||||
|
||||
Reference in New Issue
Block a user