Генерация pytest-скелетов из сигнатур функций: AST-парсинг + эвристика значений,
готовый параметризованный тест-файл в stdout или файл.
Загружай этот скилл когда нужно создать стартовый pytest-набор для
существующих функций или модуля. Скилл читает исходник, извлекает сигнатуры
и генерирует @pytest.mark.parametrize-скелеты с разумными тестовыми значениями —
остаётся лишь дописать assert-ожидания.
🎯 When to use
Use this skill when:
Нужны тесты для нового модуля, где покрытие начинается с пустого файла
Нужна быстрая заготовка parametrize-кейсов с типичными значениями
Хочешь перейти к TDD: сгенерируй красные скелеты и реализуй
Do NOT use when:
Нужны осмысленные ассерты под конкретную логику — скрипт даёт заглушки, логику пишешь сам
Тесты уже покрывают функции — файл-генератор всё перезапишет
Нужны моки/фикстуры вне модуля — это уровень pytest напрямую
📦 Files
SKILL.md — этот файл
scripts/test_gen.py — генератор из AST (Python 3 stdlib)
references/ — примеры и референс TS/Go (в будущих версиях)
🧰 Usage
# В stdout:
python3 skills/test-generator/scripts/test_gen.py --file path/to/module.py
# В файл (рядом с модулем):
python3 skills/test-generator/scripts/test_gen.py \
--file path/to/module.py --out tests/test_module.py
⚙️ Эвристика значений аргументов
Аннотация
Значения
bool
True, False
int
0, -1, 1
float
0.0, -1.5
str / text
"sample", ""
list[...]
[]
tuple[...]
()
dict[...]
{}
Optional[...]
None
иное
значение не подставляется → None-заглушка
Правила:
Функции, начинающиеся с _, пропускаются.
async def оборачивается в asyncio.run(...).
В генерируемом коде assert-заглушка: assert result is not None — допиши реальные ожидания.
✅ Definition of Done
Скрипт отработал: валидный pytest-файл в stdout или --out.
Сгенерированный код проходит python3 -c "import ast" (синтаксис корректный).
Значения аргументов соответствуют эвристикам (таблица выше).
1---2name: test-generator3description: Test Generator4---56# Test Generator78> Генерация pytest-скелетов из сигнатур функций: AST-парсинг + эвристика значений,9> готовый параметризованный тест-файл в stdout или файл.1011Загружай этот скилл когда нужно **создать стартовый pytest-набор** для12существующих функций или модуля. Скилл читает исходник, извлекает сигнатуры13и генерирует `@pytest.mark.parametrize`-скелеты с разумными тестовыми значениями —14остаётся лишь дописать assert-ожидания.1516## 🎯 When to use1718Use this skill when:19- Нужны тесты для нового модуля, где покрытие начинается с пустого файла20- Просят «сгенерируй тесты», «test skeleton», «покрой функциям»21- Нужна быстрая заготовка parametrize-кейсов с типичными значениями22- Хочешь перейти к TDD: сгенерируй красные скелеты и реализуй2324Do NOT use when:25- Нужны осмысленные ассерты под конкретную логику — скрипт даёт заглушки, логику пишешь сам26- Тесты уже покрывают функции — файл-генератор всё перезапишет27- Нужны моки/фикстуры вне модуля — это уровень pytest напрямую2829## 📦 Files3031- `SKILL.md` — этот файл32- `scripts/test_gen.py` — генератор из AST (Python 3 stdlib)33- `references/` — примеры и референс TS/Go (в будущих версиях)3435## 🧰 Usage3637```bash38# В stdout:39python3 skills/test-generator/scripts/test_gen.py --file path/to/module.py4041# В файл (рядом с модулем):42python3 skills/test-generator/scripts/test_gen.py \43 --file path/to/module.py --out tests/test_module.py44```4546## ⚙️ Эвристика значений аргументов4748| Аннотация | Значения |49|-----------|----------|50| `bool` | `True`, `False` |51| `int` | `0`, `-1`, `1` |52| `float` | `0.0`, `-1.5` |53| `str` / `text` | `"sample"`, `""` |54| `list[...]` | `[]` |55| `tuple[...]` | `()` |56| `dict[...]` | `{}` |57| `Optional[...]` | `None` |58| иное | значение не подставляется → `None`-заглушка |5960Правила:61- Функции, начинающиеся с `_`, пропускаются.62- `async def` оборачивается в `asyncio.run(...)`.63- В генерируемом коде assert-заглушка: `assert result is not None` — допиши реальные ожидания.6465## ✅ Definition of Done66- Скрипт отработал: валидный pytest-файл в stdout или `--out`.67- Сгенерированный код проходит `python3 -c "import ast"` (синтаксис корректный).68- Значения аргументов соответствуют эвристикам (таблица выше).
Run npx skillmds@latest add bestdeejay-design/test-generator in your terminal (requires Node.js), paste this page's agent-chat prompt into Claude, Cursor, or any MCP-connected agent, or download the SKILL.md file and copy it into your agent's skills directory.
Test Generator It is listed under Coding & Dev Tools on SkillMD.
This skill has not completed SkillMD's automated safety review yet. SkillMD never runs a skill's scripts for you; review the SKILL.md before installing.
This skill is tagged as working with Claude Code, Claude.ai, OpenAI Codex. SKILL.md is an open format, so most agents that read a skills directory can load it too.
Yes. Installing skills from SkillMD is free, and the skill stays under its author's original license.
bestdeejay-design (@bestdeejay-design) published this skill. Their other Agent Skills are listed on their SkillMD profile.