pytest-config について
Claude Night Market プラグイン間で pytest 設定と再利用可能なテスト基盤を統一するスキルです。共有フィクスチャ、マーカー、カバレッジ設定、CI パターンが必要な Python プロジェクト向けです。
主な機能
- 01pytest 設定パターン
- 02再利用可能な conftest フィクスチャ
- 03テストマーカーとディレクトリ構成
- 04カバレッジと CI のガイダンス
活用シーン
- 01Python プロジェクトでの pytest 設定
- 02共有テストフィクスチャの作成
- 03プラグインのテスト基盤の標準化
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ athola/ claude-night-market --skill pytest-configインストール後、Claude Code で/pytest-configを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
modules/ci-integration.mdconftest-patterns.mdgit-testing-fixtures.mdmock-fixtures.mdREADME.md詳細
Pytest 設定パターン
Claude Night Market プラグイン全体で一貫したテスト基盤を実現するための、標準化された pytest 設定とパターンです。
使用する場面
- pytest の設定とフィクスチャをセットアップするとき
- テスト基盤向けに conftest.py のパターンを設定するとき
使用しない場面
- Python 以外のプロジェクト、または別のテストフレームワークを使用するプロジェクト
- テスト基盤を必要としないシンプルなスクリプト
クイックスタート
基本的な pyproject.toml の設定
[tool.pytest.ini_options]
testpaths = ["tests"]
python_files = ["test_*.py"]
python_classes = ["Test*"]
python_functions = ["test_*"]
addopts = [
"-v",
"--cov=src",
"--cov-report=term-missing",
"--cov-fail-under=80",
"--strict-markers",
]
markers = [
"unit: marks tests as unit tests",
"integration: marks tests as integration tests",
"slow: marks tests as slow running",
]
[tool.coverage.run]
source = ["src"]
omit = ["*/tests/*", "*/migrations/*", "*/__pycache__/*"]
branch = true
[tool.coverage.report]
exclude_lines = [
"pragma: no cover",
"def __repr__",
"def __str__",
"raise NotImplementedError",
"if __name__ == .__main__.:",
"if TYPE_CHECKING:",
"class .*\\bProtocol\\):",
"@(abc\\.)?abstractmethod",
]
precision = 2
show_missing = true
確認方法: テストの検出を確認するには pytest --collect-only、マーカーを確認するには pytest -v --co -q、カバレッジのしきい値を確認するには pytest --cov を実行します。
詳細なパターン
詳細な実装パターンについては、以下を参照してください。
- Conftest パターン - Conftest.py のテンプレート、フィクスチャ、テストマーカー、ディレクトリ構成
- Git テスト用フィクスチャ - Git ワークフローのテストに使用する GitRepository ヘルパークラス
- モックフィクスチャ - Bash、TodoWrite、その他の Claude Code ツール向けのモックツールフィクスチャ
- CI 統合 - 自動テスト用の GitHub Actions ワークフローとテストコマンド
- モジュール索引: モジュール構成の概要は
modules/README.mdを参照してください
他のスキルとの連携
このスキルが提供する基盤となるパターンは、以下から参照されます。
parseltongue:python-testing- pytest の設定とフィクスチャを使用しますpensive:test-review- テスト品質の基準を使用しますsanctum:test-*- conftest パターンと Git フィクスチャを使用します
スキルのフロントマターで、以下のように参照してください。
dependencies: [leyline:pytest-config, leyline:testing-quality-standards]
完了条件
- pytest の設定がプラグイン全体で標準化されている
- conftest.py が再利用可能なフィクスチャを提供している
- テストマーカーが定義され、文書化されている
- カバレッジ設定によって品質のしきい値が適用されている
- 自動テスト向けに CI/CD 統合が設定されている
トラブルシューティング
よくある問題
テストが検出されない
テストファイル名が test_*.py または *_test.py のパターンに一致することを確認してください。検出を確認するには pytest --collect-only を実行します。
インポートエラー
テスト対象のモジュールが PYTHONPATH に含まれていることを確認するか、pip install -e . でインストールしてください。
非同期テストが失敗する
pytest-asyncio をインストールし、テスト関数に @pytest.mark.asyncio を付けてください。
コメント
Markdown 対応