Pular para o conteúdo
Skillpedia
Testes41 mil · #4809

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

https://github.com/wshobson/agents/blob/main/plugins/backend-development/skills/temporal-python-testing/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/wshobson/agents/blob/main/plugins/backend-development/skills/temporal-python-testing/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
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-testing

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/wshobson/agents/main/plugins/backend-development/skills/temporal-python-testing/SKILL.md -o SKILL.md
Conteú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:

  1. Unitário: Workflows com salto de tempo, atividades com ActivityEnvironment
  2. Integração: Workers com atividades mockadas
  3. 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

  1. Salto de Tempo - Workflows de um mês testados em segundos
  2. Mock de Atividades - Isolar a lógica do workflow de dependências externas
  3. Teste de Replay - Validar determinismo antes da implantação
  4. Alta Cobertura - Meta de ≥80% para workflows de produção
  5. 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

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas