Навык temporal-python-testing
✓ ПровереноТестирование Temporal workflows с помощью pytest: стратегии для юнит-тестирования, интеграционного тестирования, пропуска времени (time-skipping) и реплей-тестирования.
- Звёзды на GitHub
- 42 413
- Файлы
- 5
- Последний коммит
- 9 нояб. 2026 г.
- Лицензия
- MIT
- Разрешённые инструменты
- —
Что делает навык temporal-python-testing?
temporal-python-testing — это Agent Skill. Тестирование Temporal workflows с помощью pytest: стратегии для юнит-тестирования, интеграционного тестирования, пропуска времени (time-skipping) и реплей-тестирования.
Сводка сгенерирована из SKILL.md навыка.
О skill temporal-python-testing
Этот SKILL позволяет разработчикам распределенных систем тестировать Temporal workflows с помощью pytest. Он предоставляет конкретные стратегии для юнит-тестирования, интеграционного тестирования и реплей-тестирования для обеспечения детерминизма воркфлоу. Агенту следует загрузить этот SKILL при написании новых тестов для воркфлоу, отладке ошибок или настройке локальной среды разработки с помощью Docker Compose.
SKILL предоставляет специализированные руководства в виде markdown-ресурсов, таких как unit-testing.md и integration-testing.md. Он помогает пользователям реализовать пропуск времени через WorkflowEnvironment, превращая воркфлоу длительностью в месяцы в тесты, которые выполняются за секунды. Разработчики также могут использовать ActivityEnvironment для изолированного тестирования активностей и стратегии мокирования, чтобы отделить логику воркфлоу от внешних зависимостей. Цель состоит в том, чтобы помочь командам достичь как минимум 80% покрытия логики как для воркфлоу, так и для активностей, сохраняя при этом быстрый цикл обратной связи.
Что агент может делать с ним
- 1Ускорение тестов длительных воркфлоуИспользуйте пропуск времени для тестирования воркфлоу, которые в обычном режиме длятся месяцы, всего за несколько секунд.
- 2Изоляция логики воркфлоу от зависимостейРеализуйте интеграционные тесты, используя моки для активностей, чтобы внешние зависимости не влияли на результаты.
- 3Обеспечение детерминизма воркфлоуПроверяйте, что изменения в воркфлоу остаются детерминированными, используя реплей продакшн-историй.
- 4Настройка локальных сред разработкиНастройте полный локальный стек разработки, включая Docker Compose и конфигурации pytest.
Написано на основе skill SKILL.md. Каждый сценарий использования проверен по цитате из него.
Как установить навык temporal-python-testing
Каждая команда копирует папку навыка в каталог навыков клиента. Перезапустите клиент или начните новую сессию, чтобы загрузить его.Установка навыка temporal-python-testing в Плагин
/plugin marketplace add wshobson/agents /plugin install backend-development@claude-code-workflows
Установка навыка temporal-python-testing в Claude Code
~/.claude/skills/temporal-python-testing/SKILL.md
$ npx degit wshobson/agents/plugins/backend-development/skills/temporal-python-testing ~/.claude/skills/temporal-python-testingУстановка навыка temporal-python-testing в Claude Code (project)
.claude/skills/temporal-python-testing/SKILL.md
$ npx degit wshobson/agents/plugins/backend-development/skills/temporal-python-testing .claude/skills/temporal-python-testingУстановка навыка temporal-python-testing в Codex
~/.agents/skills/temporal-python-testing/SKILL.md
$ npx degit wshobson/agents/plugins/backend-development/skills/temporal-python-testing ~/.agents/skills/temporal-python-testingУстановка навыка temporal-python-testing в Gemini CLI
~/.gemini/skills/temporal-python-testing/SKILL.md
$ npx degit wshobson/agents/plugins/backend-development/skills/temporal-python-testing ~/.gemini/skills/temporal-python-testingУстановка навыка temporal-python-testing в Claude.ai
npx degit wshobson/agents/plugins/backend-development/skills/temporal-python-testing temporal-python-testing && zip -r temporal-python-testing.zip temporal-python-testing # claude.ai → Customize → Skills → + → Create skill → Upload a skill → temporal-python-testing.zip
Автоматические проверки
Запущено 13 нояб. 2026 г.Полный отчёт →Прошёл наши автоматические проверки. Это не аудит безопасности: прочитайте скрипты, прежде чем агент их запустит. Как работают проверки
- Связанный и доступный исходный репозиторийwshobson/agents/plugins/backend-development/skills/temporal-python-testing is public and reachablegithub.com/wshobson/agents/tree/HEAD/plugins/backend-develop ↗Пройдено
- Open source лицензия (OSI)MITspdx.org/licenses/MIT.html ↗Пройдено
- Коммит или релиз за последний годLast commit 2026-11-09github.com/wshobson/agents/commits ↗Пройдено
- В скриптах нет загрузки с запуском и кражи учётных данныхNo scripts in the skill folderПройдено
- В SKILL.md нет скрытых инструкцийNo override phrases, safeguard switches, credential requests or hidden charactersgithub.com/wshobson/agents/blob/HEAD/plugins/backend-develop ↗Пройдено
- Заранее разрешённые инструменты ограниченыNo pre-approved tools; the agent asks before using onegithub.com/wshobson/agents/blob/HEAD/plugins/backend-develop ↗Пройдено
SKILL.md
Открыть на GitHubTemporal Python Testing Strategies
Comprehensive testing approaches for Temporal workflows using pytest, progressive disclosure resources for specific testing scenarios.
When to Use This Skill
- Unit testing workflows - Fast tests with time-skipping
- Integration testing - Workflows with mocked activities
- Replay testing - Validate determinism against production histories
- Local development - Set up Temporal server and pytest
- CI/CD integration - Automated testing pipelines
- Coverage strategies - Achieve ≥80% test coverage
Testing Philosophy
Recommended Approach (Source: docs.temporal.io/develop/python/testing-suite):
- Write majority as integration tests
- Use pytest with async fixtures
- Time-skipping enables fast feedback (month-long workflows → seconds)
- Mock activities to isolate workflow logic
- Validate determinism with replay testing
Three Test Types:
- Unit: Workflows with time-skipping, activities with ActivityEnvironment
- Integration: Workers with mocked activities
- End-to-end: Full Temporal server with real activities (use sparingly)
Available Resources
This skill provides detailed guidance through progressive disclosure. Load specific resources based on your testing needs:
Unit Testing Resources
File: resources/unit-testing.md
When to load: Testing individual workflows or activities in isolation
Contains:
- WorkflowEnvironment with time-skipping
- ActivityEnvironment for activity testing
- Fast execution of long-running workflows
- Manual time advancement patterns
- pytest fixtures and patterns
Integration Testing Resources
File: resources/integration-testing.md
When to load: Testing workflows with mocked external dependencies
Contains:
- Activity mocking strategies
- Error injection patterns
- Multi-activity workflow testing
- Signal and query testing
- Coverage strategies
Replay Testing Resources
File: resources/replay-testing.md
When to load: Validating determinism or deploying workflow changes
Contains:
- Determinism validation
- Production history replay
- CI/CD integration patterns
- Version compatibility testing
Local Development Resources
File: resources/local-setup.md
When to load: Setting up development environment
Contains:
- Docker Compose configuration
- pytest setup and configuration
- Coverage tool integration
- Development workflow
Quick Start Guide
Basic Workflow Test
import pytest
from temporalio.testing import WorkflowEnvironment
from temporalio.worker import Worker
@pytest.fixture
async def workflow_env():
env = await WorkflowEnvironment.start_time_skipping()
yield env
await env.shutdown()
@pytest.mark.asyncio
async def test_workflow(workflow_env):
async with Worker(
workflow_env.client,
task_queue="test-queue",
workflows=[YourWorkflow],
activities=[your_activity],
):
result = await workflow_env.client.execute_workflow(
YourWorkflow.run,
args,
id="test-wf-id",
task_queue="test-queue",
)
assert result == expected
Basic Activity Test
from temporalio.testing import ActivityEnvironment
async def test_activity():
env = ActivityEnvironment()
result = await env.run(your_activity, "test-input")
assert result == expected_output
Coverage Targets
Recommended Coverage (Source: docs.temporal.io best practices):
- Workflows: ≥80% logic coverage
- Activities: ≥80% logic coverage
- Integration: Critical paths with mocked activities
- Replay: All workflow versions before deployment
Key Testing Principles
- Time-Skipping - Month-long workflows test in seconds
- Mock Activities - Isolate workflow logic from external dependencies
- Replay Testing - Validate determinism before deployment
- High Coverage - ≥80% target for production workflows
- Fast Feedback - Unit tests run in milliseconds
How to Use Resources
Load specific resource when needed:
- "Show me unit testing patterns" → Load
resources/unit-testing.md - "How do I mock activities?" → Load
resources/integration-testing.md - "Setup local Temporal server" → Load
resources/local-setup.md - "Validate determinism" → Load
resources/replay-testing.md
Additional References
- Python SDK Testing: docs.temporal.io/develop/python/testing-suite
- Testing Patterns: github.com/temporalio/temporal/blob/main/docs/development/testing.md
- Python Samples: github.com/temporalio/samples-python
Файлы в этом навыке
5Вопросы о навыке temporal-python-testing
Как установить навык temporal-python-testing в Claude Code?
Выполните npx degit wshobson/agents/plugins/backend-development/skills/temporal-python-testing ~/.claude/skills/temporal-python-testing. Claude Code загружает навыки из ~/.claude/skills (все проекты) или .claude/skills (один проект) и использует навык, когда его описание соответствует задаче.
Какие клиенты могут использовать навык temporal-python-testing?
Любой клиент, который читает формат Agent Skills: Claude Code, Codex, Gemini CLI и claude.ai (загрузить как ZIP). Скрипты в навыке выполняются только там, где клиент разрешает выполнение кода.
В чем преимущество пропуска времени (time-skipping) при тестировании?
Пропуск времени позволяет быстро получать обратную связь, позволяя протестировать воркфлоу, рассчитанные на месяцы, всего за несколько секунд.