testing-python について
Python 3.14+プロジェクト向けのテスト戦略スキルです。pytest、Ruff、mypy、Playwrightなどを使ったテストと品質確認の方法をまとめています。
主な機能
- 01pytestで単体テストと統合テストを実施
- 02Ruffでコードをチェックしてフォーマット
- 03厳格なmypyで型をチェック
- 04Playwright、Hypothesis、Mutmutを活用
活用シーン
- 01FastAPIまたはDjangoバックエンドのテストを作成
- 02CIでlint、フォーマット、型チェックを設定
- 03Playwrightでブラウザフローを検証
- 04プロパティテストとミューテーションテストで品質を評価
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ thebeardedbearsas/ claude-craft --skill testing-pythonインストール後、Claude Code で/testing-pythonを入力して読み込まれたか確認します。
同梱ファイルREFERENCE.md
詳細
Python 3.14+ のテスト戦略
バージョン: Python 3.14+ | pytest 9.x | Ruff 0.17+ | mypy 2.x | Playwright
Ruff は Black + isort + Flake8 を置き換えます(10〜100倍高速です)。mypy strict はコンパイル時に型のバグを排除します。
2026年の推奨スタック
| 種類 | ツール | 用途 |
|---|---|---|
| 単体/統合 | pytest 9.x | FastAPI/Django のバックエンドテスト |
| リンティング+フォーマット | Ruff 0.17+ | Black+Flake8 より10〜100倍高速 |
| 型チェック | mypy 2.x strict | 静的検証 |
| E2E/ブラウザー | Playwright | Web フロントエンドのテスト |
| BDD(Gherkin) | pytest-bdd | Given/When/Then シナリオ |
| ミューテーション | Mutmut | テスト品質(スコア >= 80%) |
| プロパティベース | Hypothesis | テストケースを自動生成 |
妥協できない要件
- カバレッジ >= 80%(
pyproject.tomlの--cov-fail-under=80) - mypy strict — 正当な理由のない
Anyはゼロ、disallow_untyped_defs = true - CI で Ruff を必須化(check + format)
- 各テストで AAA パターン(Arrange-Act-Assert)を使用
- 依存関係の注入には pytest のフィクスチャを使用(グローバル状態は使わない)
- Mutmut によるミューテーションスコア >= 80%
種類別チェックリスト
| 種類 | 確認事項 |
|---|---|
| 単体 | 完全な分離、pytest のフィクスチャ、unittest.mock のモック |
| 統合 | FastAPI の TestClient/Django の Client、テスト用 DB |
| E2E | Playwright sync_api、expect() アサーション |
| プロパティ | 自動的なエッジケース生成に Hypothesis の @given を使用 |
| ミューテーション | mutmut run、マージ前にスコア >= 80 |
詳細、コード例、設定、チェックリストについては、REFERENCE.md を参照してください。
コメント
Markdown 対応