temporal-python-testing
pytestとモックを使用したTemporalワークフローのテスト
Temporalワークフローのテストはしばしば低速で不安定です。このスキルは、タイムスキップ、アクティビティモック、リプレイ検証を使用した高速で決定論的なテストパターンを提供し、信頼性の高いCI/CDパイプラインを実現します。
スキルZIPをダウンロード
Claudeでアップロード
設定 → 機能 → スキル → スキルをアップロードへ移動
オンにして利用開始
テストする
「temporal-python-testing」を使用しています。 Create a test plan for Temporal workflows with unit, integration, and replay coverage.
期待される結果:
- 高速なユニットワークフロートテストにはWorkflowEnvironmentとタイムスキップを使用
- 外部依存関係を統合テストでモックし、エラーハンドリング 경로를検証
- 本番履歴をエクスポートし、新しいコードに対してデプロイ前にリプレイ
「temporal-python-testing」を使用しています。 How do I test a workflow that has retry logic and multiple activities?
期待される結果:
- ワークフローロジックを分離するためにモックされたアクティビティでテストを作成
- アクティビティ固有のエラーハンドリングをテストするためにActivityEnvironmentを使用
- アクティビティの呼び出し回数を数えてリトライ動作を検証
- アサーション付き成功パスと失敗パスの両方をテスト
「temporal-python-testing」を使用しています。 What are common mistakes when testing Temporal workflows?
期待される結果:
- モックする代わりに実際の外部APIを呼び出す
- replayの決定論性を壊すrandom()やdatetime.now()の使用
- ワークフローの変更前にリプレイテストをスキップ
- 長時間ワークフローのテストでタイムスキップを使用しない
セキュリティ監査
安全Educational documentation for Temporal workflow testing. Static scanner false positives: markdown code block backticks flagged as shell execution, legitimate docs URLs as hardcoded URLs, and test code patterns as cryptographic/C2 indicators. Previous Claude audit (skill-report.json) confirmed safe with no risk factors. All 149 findings are false positives from documentation patterns.
リスク要因
⚙️ 外部コマンド (125)
🌐 ネットワークアクセス (6)
品質スコア
作れるもの
高速ユニットテストの追加
タイムスキップを使用した迅速なワークフローとアクティビティのテストを、数時間ではなく数ミリ秒で実行するように作成します。
統合フローの検証
外部サービスをモックし、エラー注入を伴う複雑なワークフローオーケストレーション 경로를検証します。
リプレイチェックの実行
デプロイ前にワークフローの決定論性を確認し、バージョン互換性を検証します。
これらのプロンプトを試す
タイムスキップとシンプルなアクティビティを持つワークフローをテストするための最小のpytestセットアップを見せてください。フィクスチャとアサーションを含めてください。
アクティビティをモックし、アクティビティの結果に基づくワークフローの分岐ロジックを検証する統合テストの例を提供してください。
本番からワークフローの履歴をリプレイし、実行中のワークフローを破壊する可能性のある非決定的な変更を検出する方法を説明してください。
pytestマーカー、カバレッジしきい値、安全なデプロイのための自動リプレイテストを含む完全なCI計画の概要を示してください。
ベストプラクティス
- すべてのワークフローユニットテストにタイムスキップを使用して、数か月間のワークフローを数秒で実行
- ワークフローロジックを分離するために統合テストで外部依存関係をモック
- 決定論性を確保するためにワークフローの変更をデプロイする前にリプレイテストを実行
回避
- モックする代わりにワークフローテスト内で実際の外部APIを呼び出す
- Temporalヘルパーなしでワークフローコード内でrandom()やdatetime.now()を使用
- 重要なワークフローのリファクタリングやロジック変更後にリプレイテストをスキップ