---
id: sm-temporal-python-testing
name: "temporal-python-testing"
url: https://skills.yangsir.net/skill/sm-temporal-python-testing
author: wshobson
domain: testing
tags: ["temporal.io", "python-testing", "workflow-testing", "distributed-systems", "test-automation"]
install_count: 6700
rating: 4.50 (48 reviews)
github: https://github.com/wshobson/agents
---

# temporal-python-testing

> 专注于Temporal Python测试，利用智能自动化和多智能体编排，确保分布式工作流的健壮性与可靠性。

**Stats**: 6,700 installs · 4.5/5 (48 reviews)

## Before / After 对比

### Temporal Python测试：分布式工作流的智能自动化保障

## Readme

# temporal-python-testing

# Temporal 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

Weekly Installs3.2KRepository[wshobson/agents](https://github.com/wshobson/agents)GitHub Stars31.5KFirst SeenJan 20, 2026Security Audits[Gen Agent Trust HubPass](/wshobson/agents/temporal-python-testing/security/agent-trust-hub)[SocketPass](/wshobson/agents/temporal-python-testing/security/socket)[SnykWarn](/wshobson/agents/temporal-python-testing/security/snyk)Installed onclaude-code2.4Kopencode2.3Kgemini-cli2.3Kcodex2.2Kcursor2.2Kgithub-copilot1.9K

---
*Source: https://skills.yangsir.net/skill/sm-temporal-python-testing*
*Markdown mirror: https://skills.yangsir.net/api/skill/sm-temporal-python-testing/markdown*