Agent Skills
返回列表
💻

Temporal Python 工作流测试

开发编程 更新于 2026.08.30

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @org-02qudk26/temporal-python-testing。

技能介绍

要解决什么问题

Temporal 工作流往往跨越数天甚至数月,依赖真实 Activity 与外部系统。若在 CI 里按真实时间跑集成,反馈慢、环境难复现;只测 Activity 又无法覆盖工作流编排、信号与查询。部署前若未验证确定性,生产重放可能因非确定性代码而失败。

本技能整理的是与 Temporal Python 测试套件 一致的做法:用 pytest 与异步 fixture,把「长时间工作流」压到秒级,并用 mock 把工作流逻辑与外部依赖拆开。

技能如何组织

技能按场景做分级披露,你按当前任务加载对应资源即可:

  • 单元测试(resources/unit-testing.md):WorkflowEnvironment 时间跳过、ActivityEnvironment 测 Activity、pytest fixture 与手动推进时间
  • 集成测试(resources/integration-testing.md):mock Activity、错误注入、多 Activity 与 Signal/Query、覆盖率思路
  • 重放测试(resources/replay-testing.md):生产历史重放、确定性校验、部署前版本兼容
  • 本地开发(resources/local-setup.md):Docker Compose、pytest 与覆盖率工具、日常开发流程

推荐的三层划分:单元(时间跳过 + Activity 环境)、集成(Worker + mock Activity)、端到端(完整 Temporal 服务 + 真实 Activity,慎用)。工作流与 Activity 逻辑覆盖率目标通常为 ≥80%;集成侧覆盖带 mock 的关键路径,重放侧在发版前覆盖各工作流版本。

更细的步骤与示例见 resources/implementation-playbook.md。

适用边界

  • 任务与 Temporal Python 测试策略无关,或需要本技能范围外的其他领域/工具时,不必加载本技能。
  • 端到端测试成本高,文档建议以集成测试为主,仅在必要时上全栈 Temporal。
  • 资源是指引与模式说明,具体项目仍需你自备工作流代码、历史导出与 CI 环境。

使用场景

  • 为跨数周或数月的定时/延时工作流编写单元测试,用时间跳过在几秒内跑完全部分支而非等真实时钟
  • 在合并或发布前,用生产导出的工作流历史做重放测试,确认代码变更未破坏确定性
  • 工作流串联多个外部 API 的 Activity 时,用 mock Activity 测失败重试、超时与 Signal 处理,不调用真实下游
  • 在本机用 Docker Compose 起 Temporal 服务,配置 pytest 异步 fixture 与覆盖率,日常改工作流即跑测试

适合人员

  • 维护 Python Temporal Worker 的后端工程师,发版前要把工作流与 Activity 逻辑覆盖率拉到约 80% 并覆盖关键分支
  • 负责 CI 的平台或基础架构工程师,需要把集成测试与重放校验纳入流水线,拦截非确定性变更
  • 刚引入 Temporal 的业务团队技术负责人,要统一单元/集成/重放三层测试分工与资源加载方式
  • 排查线上工作流重放失败或版本升级问题的工程师,需要按文档做确定性验证与历史重放对照