Skill temporal-python-testing
✓ VérifiéTestez les workflows Temporal avec pytest en utilisant des stratégies de tests unitaires, de tests d'intégration, de saut dans le temps (time-skipping) et de tests de relecture (replay testing).
- Étoiles GitHub
- 42 413
- Fichiers
- 5
- Dernier commit
- 9 nov. 2026
- Licence
- MIT
- Outils autorisés
- —
Que fait la skill temporal-python-testing ?
temporal-python-testing est une agent skill. Testez les workflows Temporal avec pytest en utilisant des stratégies de tests unitaires, de tests d'intégration, de saut dans le temps (time-skipping) et de tests de relecture (replay testing).
Résumé généré à partir du SKILL.md de la skill.
À propos du skill temporal-python-testing
Ce SKILL permet aux développeurs de systèmes distribués de tester les workflows Temporal en utilisant pytest. Il propose des stratégies spécifiques pour les tests unitaires, les tests d'intégration et les tests de relecture afin de garantir le déterminisme des workflows. Un agent doit charger ce SKILL lors de l'implémentation de nouveaux tests de workflow, du débogage d'échecs ou de la configuration d'un environnement de développement local avec Docker Compose.
Le SKILL fournit des conseils spécialisés via des ressources markdown telles que unit-testing.md et integration-testing.md. Il aide les utilisateurs à implémenter le saut dans le temps via WorkflowEnvironment pour transformer des workflows de plusieurs mois en tests s'exécutant en quelques secondes. Les développeurs peuvent également utiliser ActivityEnvironment pour des tests d'activité isolés et des stratégies de mocking afin de séparer la logique du workflow des dépendances externes. L'objectif est d'aider les équipes à atteindre au moins 80 % de couverture de la logique pour les workflows et les activités tout en maintenant des boucles de feedback rapides.
Ce qu'un agent peut faire avec
- 1Accélérer les tests de workflows de longue duréeUtilisez le saut dans le temps pour tester en quelques secondes des workflows qui s'étendent normalement sur plusieurs mois.
- 2Isoler la logique du workflow des dépendancesImplémentez des tests d'intégration en utilisant le mocking d'activités pour éviter que les dépendances externes n'affectent les résultats.
- 3Garantir le déterminisme des workflowsValidez que les modifications de workflow restent déterministes en rejouant les historiques de production.
- 4Configurer des environnements de développement locauxConfigurez une pile de développement locale complète incluant Docker Compose et les configurations pytest.
Rédigé à partir du SKILL.md du skill. Chaque cas d'utilisation est vérifié par rapport à une citation de celui-ci.
Comment installer la skill temporal-python-testing
Chaque commande copie le dossier de la skill dans le répertoire des skills du client. Redémarrez le client ou démarrez une nouvelle session pour la charger.Installer la skill temporal-python-testing dans Plugin
/plugin marketplace add wshobson/agents /plugin install backend-development@claude-code-workflows
Installer la skill temporal-python-testing dans Claude Code
~/.claude/skills/temporal-python-testing/SKILL.md
$ npx degit wshobson/agents/plugins/backend-development/skills/temporal-python-testing ~/.claude/skills/temporal-python-testingInstaller la skill temporal-python-testing dans 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-testingInstaller la skill temporal-python-testing dans Codex
~/.agents/skills/temporal-python-testing/SKILL.md
$ npx degit wshobson/agents/plugins/backend-development/skills/temporal-python-testing ~/.agents/skills/temporal-python-testingInstaller la skill temporal-python-testing dans Gemini CLI
~/.gemini/skills/temporal-python-testing/SKILL.md
$ npx degit wshobson/agents/plugins/backend-development/skills/temporal-python-testing ~/.gemini/skills/temporal-python-testingInstaller la skill temporal-python-testing dans 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
Vérifications automatisées
Exécuté le 13 nov. 2026Rapport complet →A réussi nos vérifications automatiques. Ce n'est pas un audit de sécurité : lisez les scripts avant de laisser un agent les exécuter. Fonctionnement des vérifications
- Dépôt source lié et accessiblewshobson/agents/plugins/backend-development/skills/temporal-python-testing is public and reachablegithub.com/wshobson/agents/tree/HEAD/plugins/backend-develop ↗Réussi
- Licence open source (OSI)MITspdx.org/licenses/MIT.html ↗Réussi
- Commit ou version publiée au cours de l'année écouléeLast commit 2026-11-09github.com/wshobson/agents/commits ↗Réussi
- Aucun téléchargement-exécution ni vol d'identifiants dans les scriptsNo scripts in the skill folderRéussi
- Aucune instruction cachée dans SKILL.mdNo override phrases, safeguard switches, credential requests or hidden charactersgithub.com/wshobson/agents/blob/HEAD/plugins/backend-develop ↗Réussi
- Les outils préautorisés sont limitésNo pre-approved tools; the agent asks before using onegithub.com/wshobson/agents/blob/HEAD/plugins/backend-develop ↗Réussi
SKILL.md
Voir sur 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
Fichiers de cette skill
5Questions sur la skill temporal-python-testing
Comment installer la skill temporal-python-testing dans Claude Code ?
Exécutez npx degit wshobson/agents/plugins/backend-development/skills/temporal-python-testing ~/.claude/skills/temporal-python-testing. Claude Code charge les skills depuis ~/.claude/skills (tous les projets) ou .claude/skills (un seul projet) et utilise une skill lorsque sa description correspond à la tâche.
Quels clients peuvent utiliser la skill temporal-python-testing ?
Tout client qui lit le format Agent Skills : Claude Code, Codex, Gemini CLI et claude.ai (envoi sous forme de ZIP). Les scripts de la skill ne s'exécutent que si le client autorise l'exécution de code.
En quoi le saut dans le temps est-il bénéfique pour les tests ?
Le saut dans le temps permet d'obtenir un feedback rapide en permettant de tester des workflows s'étalant sur plusieurs mois en seulement quelques secondes.