mcpField
P
python-testing

python-testing

github.com/atholaテスト・品質343103 回インストール4 日前に更新
リポジトリ

python-testing について

python-testingは、Python開発者向けにpytestでのテスト作成、フィクスチャ管理、非同期テスト、カバレッジ設定の指針をまとめたスキルです。実装とテスト基盤の内容をモジュール別に扱います。

主な機能

  1. 01pytestによる単体・統合テスト
  2. 02フィクスチャとモックの管理
  3. 03非同期テストのパターン
  4. 04カバレッジとプロジェクト設定

活用シーン

  1. 01Pythonプロジェクトのテスト作成
  2. 02外部依存の分離
  3. 03コルーチンの動作確認
  4. 04プロジェクトのカバレッジ基準設定

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/athola/claude-night-market --skill python-testing

インストール後、Claude Code で/python-testingを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

modules/
async-testing.md
fixtures-and-mocking.md
test-infrastructure.md
test-quality.md
testing-workflows.md
unit-testing.md

詳細

Python Testing Hub

pytest の設定、フィクスチャ管理、TDD の実装に関するテスト標準です。

クイックスタート

  1. 依存関係:pip install pytest pytest-cov pytest-asyncio pytest-mock
  2. 設定:次の内容を pyproject.toml に追加します。
    [tool.pytest.ini_options]
    testpaths = ["tests"]
    addopts = "--cov=src"
    
  3. 確認:pytest を実行し、test_*.py に一致するファイルが検出されることを確認します。

使用する場面

  • Python 3.9 以降のプロジェクトで、ユニットテストや統合テストを作成する場合。
  • pytest-mock またはカスタムの monkeypatching を使用して、外部依存関係を分離する場合。
  • pytest-asyncio マーカーとイベントループ管理を使用して、非同期ロジックを検証する場合。
  • プロジェクト全体のカバレッジしきい値とレポートを設定する場合。

使用しない場面

  • テストの品質を評価する場合
    • 代わりに pensive:test-review を使用してください
  • インフラストラクチャのテスト 設定の場合は leyline:pytest-config を使用してください

モジュール

このスキルでは、システムプロンプトの予算を管理するためにモジュール単位で読み込みます。

コア実装
  • modules/unit-testing.md を参照してください。AAA(Arrange-Act-Assert)パターン、基本的なテスト構造、例外の検証について説明しています。
  • modules/fixtures-and-mocking.md を参照してください。リクエストスコープのフィクスチャ、パラメーター化、境界でのモックについて説明しています。
  • modules/async-testing.md を参照してください。コルーチンのテスト、非同期フィクスチャ、並行性の検証について説明しています。
インフラストラクチャとワークフロー
  • modules/test-infrastructure.md を参照してください。ディレクトリ標準、conftest.py の管理、カバレッジツールについて説明しています。
  • modules/testing-workflows.md を参照してください。ローカル実行パターンと GitHub Actions との統合について説明しています。
標準
  • modules/test-quality.md を参照してください。例外の広範な捕捉やテスト間の共有状態など、よくあるアンチパターンの特定について説明しています。

完了条件

  • テストで AAA パターンを実装していること。
  • カバレッジがプロジェクトの最低基準である 80% に達していること。
  • 個々のテストが独立しており、実行順序に依存していないこと。
  • 副作用を防ぐため、フィクスチャのスコープ(function、class、session)が適切に設定されていること。
  • モックの使用が外部システムとの境界に限定されていること。

トラブルシューティング

  • テスト検出:ファイル名が test_*.py パターンに一致することを確認してください。検出パスのデバッグには pytest --collect-only を使用します。
  • インポートエラー:通常は pip install -e . で編集可能モードのインストールを行い、ローカルのソースディレクトリがパスに含まれていることを確認してください。
  • 非同期テストの失敗:pytest-asyncio がインストールされていること、また非同期テストで @pytest.mark.asyncio デコレーターまたは対応する自動モード設定を使用していることを確認してください。

コメント