add-property-based-testing — команда для Claude Code: настройка тестов
Команда анализирует код и добавляет тесты на свойства: ищет инварианты, подбирает фреймворк и создаёт генераторы данных. Вызывайте её, когда примеров тестов недостаточно.
npx claude-code-templates@latest --command testing/add-property-based-testingЧто делает add-property-based-testing
Команда проверяет проект и предлагает настройку тестирования на свойства. Она ищет математические свойства функций и инварианты бизнес-логики, рассматривает симметрии и проверку обратного преобразования. В качестве фреймворков названы fast-check, Hypothesis, QuickCheck и proptest; выбор зависит от языка проекта.
Дальше команда создаёт генераторы данных, задаёт предусловия и проверки результатов, настраивает уменьшение падающих примеров и подключает тесты к существующему набору. В описании также есть проверка состояния и модели, параллельный запуск и тесты производительности. Для JavaScript и TypeScript команда ищет конфигурацию Jest, для Python — pytest; для прочих случаев проверка языка может определить проект как многоязычный.
Можно задать язык аргументом: JavaScript, Python, Java, Haskell, Rust или Clojure. Для остальных языков выбор по умолчанию не обещан, поэтому перед запуском стоит явно передать нужный аргумент.
Какие задачи решает
- найти инварианты в бизнес-логике
- проверить математические свойства функций
- создать генераторы тестовых данных
- уменьшить падающий пример до короткого случая
- подключить тесты на свойства к существующему набору
Примеры запросов агенту
- Добавь тесты на свойства для Python-модуля с расчётами.
- Найди инварианты в логике корзины и создай подходящие генераторы.
- Настрой проверку обратного преобразования для JavaScript-кода.
Как установить add-property-based-testing
1Через claude-code-templates
npx claude-code-templates@latest --command testing/add-property-based-testing2Вручную: положить файлы
.claude/commands/add-property-based-testing.mdВызов — /add-property-based-testing. Для всех проектов — ~/.claude/commands/
Вручную: положить файлы
~/.codex/prompts/add-property-based-testing.mdВызов — /prompts:add-property-based-testing. В Codex этот формат помечен устаревшим, замена — скиллы
Вручную: положить файлы
.github/prompts/add-property-based-testing.prompt.mdВручную: положить файлы
.gemini/commands/add-property-based-testing.tomlGemini хранит команды в TOML: текст запроса — в поле prompt
Вопросы о add-property-based-testing
Как установить add-property-based-testing в Claude Code?
Выполните npx claude-code-templates@latest --command testing/add-property-based-testing. Локальный файл команды находится по пути .claude/commands/add-property-based-testing.md.
Что делает add-property-based-testing?
Команда анализирует проект, подбирает фреймворк для тестов на свойства и помогает выявить инварианты. Затем она создаёт генераторы и добавляет тесты в существующий набор.
Какие языки поддерживает add-property-based-testing?
Можно указать JavaScript, Python, Java, Haskell, Rust или Clojure. Команда также пытается определить язык по файлам проекта.
Исходный текст
add-property-based-testing.md · MIT
--- allowed-tools: Read, Write, Edit, Bash argument-hint: "[language] | --javascript | --python | --java | --haskell | --rust | --clojure" description: Implement property-based testing with framework selection and invariant identification --- # Add Property-Based Testing Implement property-based testing framework with invariant analysis and test generation: **$ARGUMENTS** ## Current Testing Context - Language: !`find . -name "*.js" -o -name "*.ts" | head -1 >/dev/null && echo "JavaScript/TypeScript" || find . -name "*.py" | head -1 >/dev/null && echo "Python" || echo "Multi-language"` - Test framework: !`find . -name "jest.config.*" -o -name "pytest.ini" | head -1 || echo "Detect framework"` - Mathematical functions: Analysis of codebase for property-testable functions - Business logic: Identification of invariants and properties in domain logic ## Task Implement comprehensive property-based testing with invariant analysis and automated test generation: **Language Focus**: Use $ARGUMENTS to specify JavaScript, Python, Java, Haskell, Rust, Clojure, or auto-detect from codebase **Property-Based Testing Framework**: 1. **Framework Selection** - Choose appropriate tool (fast-check, Hypothesis, QuickCheck, proptest), install dependencies, configure integration 2. **Property Identification** - Analyze mathematical properties, identify business invariants, discover symmetries, evaluate round-trip properties 3. **Generator Design** - Create custom data generators, implement constraint-based generation, design composite generators, optimize generation strategies 4. **Property Implementation** - Write property tests, implement preconditions, design postconditions, create invariant checks 5. **Shrinking Configuration** - Configure test case shrinking, optimize failure minimization, implement custom shrinkers, enhance debugging 6. **Integration & Reporting** - Integrate with existing test suite, configure reporting, setup CI integration, optimize execution performance **Advanced Features**: Stateful property testing, model-based testing, custom generators, parallel property execution, performance property testing. **Quality Assurance**: Property completeness analysis, edge case coverage, performance optimization, maintainability assessment. **Output**: Complete property-based testing setup with identified properties, custom generators, integrated test suite, and performance optimization.
© davila7 · MIT · davila7/claude-code-templates