temporal-python-testing
Ajuda seu agente a testar fluxos de trabalho complexos de forma eficiente. Permite verificar se o código funciona como esperado em diferentes situações.
O que ela faz
Esta ferramenta ajuda a testar seus programas (chamados de 'workflows') que rodam na plataforma Temporal. Ela permite simular o tempo para acelerar testes e testar partes específicas do seu código isoladamente.
Quando usar
- ✓Quando você quer testar se um 'workflow' funciona corretamente.
- ✓Quando você quer testar 'workflows' que dependem de outras partes do sistema.
- ✓Quando você quer garantir que seu 'workflow' se comporta da mesma forma em diferentes situações.
Exemplo do que pedir para a IA
“Como posso testar meu workflow simulando o tempo passar mais rápido?”
Quer saber mais? Abra as seções abaixo.
Como usar
O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.
Link da skill
Mensagem pronta para colar
Como funciona
Ela usa uma biblioteca chamada pytest para organizar os testes. Para acelerar o tempo, ela 'pula' o tempo em vez de esperar. Para testar partes isoladas, ela substitui dependências por versões falsas ('mocks').
Instalação
Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.
No terminal (Claude Code, Codex, Cursor), na pasta do projeto:
npx skills add wshobson/agents --skill temporal-python-testingOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/wshobson/agents/main/plugins/backend-development/skills/temporal-python-testing/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
Estratégias de Teste para Temporal em Python
Abordagens abrangentes de teste para workflows do Temporal usando pytest, com recursos de divulgação progressiva para cenários de teste específicos.
Quando Usar Esta Habilidade
- Testes unitários de workflows - Testes rápidos com salto de tempo
- Testes de integração - Workflows com atividades mockadas
- Testes de replay - Validar determinismo contra históricos de produção
- Desenvolvimento local - Configurar servidor Temporal e pytest
- Integração CI/CD - Pipelines de teste automatizados
- Estratégias de cobertura - Alcançar ≥80% de cobertura de teste
Filosofia de Teste
Abordagem Recomendada (Fonte: docs.temporal.io/develop/python/testing-suite):
- Escrever a maioria como testes de integração
- Usar pytest com fixtures assíncronas
- O salto de tempo permite feedback rápido (workflows de um mês → segundos)
- Mockar atividades para isolar a lógica do workflow
- Validar determinismo com testes de replay
Três Tipos de Teste:
- Unitário: Workflows com salto de tempo, atividades com ActivityEnvironment
- Integração: Workers com atividades mockadas
- End-to-end: Servidor Temporal completo com atividades reais (usar com moderação)
Recursos Disponíveis
Esta habilidade fornece orientação detalhada através de divulgação progressiva. Carregue recursos específicos com base nas suas necessidades de teste:
Recursos de Teste Unitário
Arquivo: resources/unit-testing.md
Quando carregar: Testando workflows ou atividades individuais isoladamente
Contém:
- WorkflowEnvironment com salto de tempo
- ActivityEnvironment para teste de atividades
- Execução rápida de workflows de longa duração
- Padrões de avanço manual de tempo
- Fixtures e padrões pytest
Recursos de Teste de Integração
Arquivo: resources/integration-testing.md
Quando carregar: Testando workflows com dependências externas mockadas
Contém:
- Estratégias de mock de atividades
- Padrões de injeção de erros
- Teste de workflow com múltiplas atividades
- Teste de sinais e consultas
- Estratégias de cobertura
Recursos de Teste de Replay
Arquivo: resources/replay-testing.md
Quando carregar: Validando determinismo ou implantando alterações de workflow
Contém:
- Validação de determinismo
- Replay de histórico de produção
- Padrões de integração CI/CD
- Teste de compatibilidade de versão
Recursos de Desenvolvimento Local
Arquivo: resources/local-setup.md
Quando carregar: Configurando o ambiente de desenvolvimento
Contém:
- Configuração Docker Compose
- Configuração e ajuste do pytest
- Integração de ferramenta de cobertura
- Workflow de desenvolvimento
Guia de Início Rápido
Teste Básico de Workflow
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
Teste Básico de Atividade
from temporalio.testing import ActivityEnvironment
async def test_activity():
env = ActivityEnvironment()
result = await env.run(your_activity, "test-input")
assert result == expected_output
Metas de Cobertura
Cobertura Recomendada (Fonte: melhores práticas do docs.temporal.io):
- Workflows: ≥80% de cobertura de lógica
- Atividades: ≥80% de cobertura de lógica
- Integração: Caminhos críticos com atividades mockadas
- Replay: Todas as versões de workflow antes da implantação
Princípios Chave de Teste
- Salto de Tempo - Workflows de um mês testados em segundos
- Mock de Atividades - Isolar a lógica do workflow de dependências externas
- Teste de Replay - Validar determinismo antes da implantação
- Alta Cobertura - Meta de ≥80% para workflows de produção
- Feedback Rápido - Testes unitários executados em milissegundos
Como Usar os Recursos
Carregue o recurso específico quando necessário:
- "Mostre-me padrões de teste unitário" → Carregar
resources/unit-testing.md - "Como faço mock de atividades?" → Carregar
resources/integration-testing.md - "Configurar servidor Temporal local" → Carregar
resources/local-setup.md - "Validar determinismo" → Carregar
resources/replay-testing.md
Referências Adicionais
- Teste do SDK Python: docs.temporal.io/develop/python/testing-suite
…
Perguntas frequentes
O que é 'time-skipping'?
É uma técnica que permite que seus testes rodem muito mais rápido, simulando que dias ou meses se passaram em segundos, sem ter que esperar o tempo real passar.
O que são 'mocked activities'?
São versões falsas de partes do seu código (atividades) que seu 'workflow' chama. Isso permite testar o 'workflow' sem precisar que essas outras partes realmente funcionem, focando apenas na lógica do 'workflow'.
O que é 'replay testing'?
É um teste que roda seu 'workflow' novamente usando um histórico de como ele já rodou antes. Isso ajuda a garantir que o 'workflow' é consistente e não muda seu comportamento inesperadamente.
Detalhes
Descrição original do autor
Test Temporal workflows with pytest, time-skipping, and mocking strategies. Covers unit testing, integration testing, replay testing, and local development setup. Use when implementing Temporal workflow tests or debugging test failures.
repo: wshobson/agents
Popularidade
- Estrelas no GitHub
- 41 mil
- Posição no ranking
- #4809
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
screen-reader-testing
Faz seu agente testar sites usando leitores de tela para garantir que sejam acessíveis.
wshobson/agents
wcag-audit-patterns
Ajuda seu agente a auditar sites para acessibilidade e corrigir problemas de acordo com as diretrizes WCAG.
wshobson/agents
multi-reviewer-patterns
Faz seu agente coordenar revisões de código paralelas, deduplicando achados e consolidando relatórios.
wshobson/agents
parallel-debugging
Permite ao agente depurar problemas complexos com investigações paralelas e análise de causa raiz.
wshobson/agents
Skills parecidas
cpp-testing
Faz seu agente escrever e melhorar testes para código C++. Ajuda a configurar ferramentas de teste e a corrigir erros.
affaan-m/ECC
csharp-testing
Ajuda seu agente a criar testes para código C# e .NET. Ele usa as melhores práticas para garantir que os testes sejam eficientes e confiáveis.
affaan-m/ECC
django-tdd
Faz seu agente aplicar estratégias de teste para Django com pytest-django e TDD. É útil para escrever testes robustos e garantir a qualidade do código, especialmente para APIs DRF.
affaan-m/ECC