W

temporal-python-testing

作者 wshobson

使用 pytest、時間跳躍與模擬策略測試 Temporal 工作流程。涵蓋單元測試、整合測試、重播測試與本地開發環境設定。適用於實作 Temporal 工作流程測試或除錯測試失敗時。

Stars0
收藏0
評論0
加入時間2026年3月28日
分類测试自動化
安裝指令
npx skills add https://github.com/wshobson/agents --skill temporal-python-testing
總覽

概覽

什麼是 temporal-python-testing?

temporal-python-testing 是一個用於自動化測試以 Python 撰寫的 Temporal 工作流程的實用技能。它提供單元測試、整合測試、重播測試及本地開發環境設定的策略與資源。此技能專為後端開發人員、QA 工程師及 DevOps 團隊設計,幫助確保 Temporal 工作流程程式碼的正確性、可靠性與決定性。

誰適合使用這個技能?

如果你:

  • 開發或維護 Temporal 上的 Python 工作流程
  • 需要快速且可靠的測試(單元、整合、重播)
  • 想在 CI/CD 流程中自動化測試
  • 需要高測試覆蓋率與決定性結果
  • 正在除錯工作流程失敗或驗證程式碼變更

都適合使用 temporal-python-testing。

它解決了哪些問題?

  • 透過時間跳躍實現快速反饋(長時間工作流程可在數秒內測試)
  • 支援整合測試的模擬與隔離
  • 以重播測試驗證向後相容性與決定性
  • 簡化本地 Temporal 伺服器的開發與測試環境設定

使用說明

安裝步驟

  1. 將技能加入你的 agent 目錄:
    npx skills add https://github.com/wshobson/agents --skill temporal-python-testing
    
  2. 閱讀 SKILL.md 以了解測試策略總覽。
  3. 探索支援資源:
    • resources/unit-testing.md:時間跳躍單元測試
    • resources/integration-testing.md:模擬活動
    • resources/replay-testing.md:針對生產歷史的重播測試
    • resources/local-setup.md:本地 Temporal 伺服器設定

主要功能與範例

使用時間跳躍的單元測試

  • 利用 WorkflowEnvironment.start_time_skipping() 即時執行工作流程測試
  • 隔離測試工作流程與活動
  • 快速取得反饋並確保結果決定性

使用模擬活動的整合測試

  • 透過 Python 的 unittest.mock 模擬外部依賴
  • 測試工作流程的編排邏輯,無需真實服務
  • 注入錯誤並模擬複雜情境

決定性的重播測試

  • 利用 Temporal 事件歷史重播工作流程
  • 驗證程式碼變更的安全性與向後相容性
  • 將重播測試整合至 CI/CD,自動化相容性檢查

本地開發環境設定

  • 使用 Docker Compose 在本地啟動 Temporal 伺服器
  • 存取 Temporal Web UI 監控工作流程
  • 輕鬆重置與管理測試資料

檔案與資料夾說明

  • SKILL.md 開始了解技能總覽
  • 查看 resources/ 取得各類測試詳細指南
  • 使用 resources/local-setup.md 進行環境設定

常見問題

temporal-python-testing 適合用於生產環境的測試嗎?

適合,它涵蓋 Temporal 推薦的單元、整合與重播測試策略,適用於生產工作流程。

如何設定本地 Temporal 伺服器?

請依照 resources/local-setup.md 中的 Docker Compose 指示,在本地執行 Temporal 及其 UI。

可以在 CI/CD 流程中自動化測試嗎?

可以,該技能提供整合測試與重播測試的 CI/CD 指南,支援相容性檢查自動化。

哪裡可以找到範例測試範式?

請參考 resources/unit-testing.mdresources/integration-testing.mdresources/replay-testing.md,內含實用的程式碼範例與範式。

如何預覽所有可用資源?

開啟 Files 標籤瀏覽完整檔案樹,包含巢狀參考與輔助腳本。

評分與評論

尚無評分
分享你的評論
登入後即可為這項技能評分並留言。
G
0/10000
最新評論
儲存中...