Agent skill · software engineering · affaan-m

python-testing

pytest、TDD手法、フィクスチャ、モック、パラメータ化、カバレッジ要件を使用したPythonテスト戦略。

Why this skill is useful

Provides a comprehensive testing strategy for Python applications using pytest, including TDD practices and fixture management that the AI may not generate independently.

What it needs

Requires pytest installed locally. About 7k tokens when loaded. Last updated 2026-08-06. 238,342 stars on the source repository.

What this skill does

Pythonテストパターン pytest、TDD方法論、ベストプラクティスを使用したPythonアプリケーションの包括的なテスト戦略。 いつ有効化するか 新しいPythonコードを書くとき(TDDに従う:赤、緑、リファクタリング) Pythonプロジェクトのテストスイートを設計するとき Pythonテストカバレッジをレビューするとき テストインフラストラクチャをセットアップするとき 核となるテスト哲学 テスト駆動開発(TDD) 常にTDDサイクルに従います。 1. 赤: 期待される動作のための失敗するテストを書く 2. 緑: テストを通過させるための最小限のコードを書く 3. リファクタリング: テストを通過させたままコードを改善する カバレッジ要件 目標: 80%以上のコードカバレッジ クリティカルパス: 100%のカバレッジが必要 pytest --covを使用してカバレッジを測定 pytestの基礎 基本的なテスト構造 アサーション フィクスチャ 基本的なフィクスチャ使用 セットアップ/ティアダウン付きフィクスチャ フィクスチャスコープ パラメータ付きフィクスチャ 複数のフィクスチャ使用 自動使用フィクスチャ 共有フィクスチャ用のConftest.py パラメータ化 基本的なパラメータ化 複数パラメータ ID付きパラメータ化 パラメータ化フィクスチャ マーカーとテスト選択 カスタムマーカー 特定のテストを実行 pytest.iniでマーカーを設定 モックとパッチ 関数のモック 戻り値のモック 例外のモック コンテキストマネージャのモック Autospec使用 クラスインスタンスのモック プロパティのモック 非同期コードのテスト pytest-asyncioを使用した非同期テスト 非同期フィクスチャ 非同期関数のモック 例外のテスト 期待される例外のテスト 例外属性のテスト 副作用のテスト ファイル操作のテスト pytestのtmppathフィクスチャを使用したテスト tmpdirフィクスチャを使用したテスト テストの整理 ディレクトリ構造 テストクラス ベストプラクティス すべきこと TDDに従う: コードの前にテストを書く(赤-緑-リファクタリング) 一つのことをテスト: 各テストは単一の動作を検証すべき 説明的な名前を使用: testuserloginwithinvalidcredentialsfails フィクスチャを使用: フィクスチャで重複を排除 外部依存をモック: 外部サービスに依存しない エッジケースをテスト: 空の入力、None値、境界条件 80%以上のカバレッジを目指す: クリティカルパスに焦点を当てる テストを高速に保つ: マークを使用して遅いテストを分離 してはいけないこと 実装をテストしない: 内部ではなく動作をテスト テストで複雑な条件文を使用しない: テストをシンプルに保つ テスト失敗を無視しない: すべてのテストは通過する必要がある サードパーティコードをテストしない: ライブラリが機能することを信頼 テスト間で状態を共有しない: テストは独立すべき テストで例外をキャッチしない: pytest.raisesを使用 print文を使用しない: アサーションとpytestの出力を使用 脆弱すぎるテストを書かない: 過度に具体的なモックを避ける 一般的なパターン APIエンドポイントのテスト(FastAPI/Flask) データベース操作のテスト クラスメソッドのテスト pytest設定 pytest.ini pyproject.toml テストの実行 クイックリファレンス パターン 使用法 --------- ------- pytest.raises() 期待される例外をテスト @pytest.fixture() 再利用可能なテストフィクスチャを作成 @pytest.mark.parametrize() 複数の入力でテストを実行 @pytest.mark.slow 遅いテストをマーク pytest -m "not slow" 遅いテストをスキップ @patch() 関数とクラスをモック tmppathフィクスチャ 自動一時ディレクトリ pytest --cov カバレッジレポートを生成 assert シンプルで読みやすいアサーション 覚えておいてください: テストもコードです。それらをクリーンで、読みやすく、保守可能に保ちましょう。良いテストはバグをキャッチし、優れたテストはそれらを防ぎます。

How to use it

Reference it in AdaL, Claude Code, Cursor or any coding agent — nothing to install:

@skills affaan-m/python-testing--e6b641

View the source on GitHub

Browse the @skills marketplace