mcpField
P
pytest

pytest

github.com/partme-aiテスト・品質71869 回インストール4 週間前に更新
リポジトリ

pytest について

pytest は、テストの作成と実行に取り組む Python 開発者向けのスキルガイドです。フィクスチャ、パラメーター化、モック、設定、カバレッジレポート、並列実行を扱います。

主な機能

  1. 01Python テストの作成と実行
  2. 02フィクスチャによる準備と後処理
  3. 03テスト入力のパラメーター化
  4. 04モックによる依存関係の分離
  5. 05pytest の設定とカバレッジレポート生成
  6. 06pytest-xdist による並列テスト実行

活用シーン

  1. 01Python プロジェクトのユニットテスト作成
  2. 02テスト設定と依存注入の再利用
  3. 03複数の入力で関数の動作を確認
  4. 04CI でのテスト実行とカバレッジ確認

インストール

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

$npx skills add https://github.com/partme-ai/full-stack-skills --skill pytest

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

同梱ファイルLICENSE.txt

詳細

このスキルを使う場面

ユーザーが次のことを希望する場合は、このスキルを使用してください。

  • pytest で Python のユニットテストを作成して実行する
  • テストのセットアップ、ティアダウン、依存性注入にフィクスチャを使用する
  • テストをパラメーター化して、複数の入力セットで実行する
  • pytest-mock または unittest.mock で依存関係をモックする
  • pytest.ini、pyproject.toml、または conftest.py で pytest を設定する
  • pytest-cov でカバレッジレポートを生成する
  • pytest-xdist でテストを並列実行する

このスキルの使い方

ワークフロー
  1. test_ プレフィックスを付けたテスト関数、または Test クラスを作成します
  2. conftest.py のフィクスチャを使用して、共通のセットアップと依存性注入を行います
  3. 必要に応じてマーカーやフィルターを適用し、pytest CLI でテストを実行します
  4. カバレッジプラグインとレポートプラグインで結果を分析します
1. 基本的なテスト
def test_addition():
    assert 1 + 1 == 2

def test_string_upper():
    assert "hello".upper() == "HELLO"
2. フィクスチャ
import pytest

@pytest.fixture
def sample_user():
    return {"name": "Alice", "email": "[email protected]"}

def test_user_name(sample_user):
    assert sample_user["name"] == "Alice"

@pytest.fixture(autouse=True)
def reset_database(db):
    db.clear()
    yield
    db.clear()
3. パラメーター化
import pytest

@pytest.mark.parametrize("input,expected", [
    ("hello", 5),
    ("", 0),
    ("pytest", 6),
])
def test_string_length(input, expected):
    assert len(input) == expected
4. モック
def test_api_call(mocker):
    mock_get = mocker.patch("requests.get")
    mock_get.return_value.json.return_value = {"status": "ok"}

    result = fetch_status()
    assert result == "ok"
    mock_get.assert_called_once()
5. テストの実行
# Run all tests
pytest

# Verbose with pattern filter
pytest -v -k "test_user"

# With coverage
pytest --cov=mypackage --cov-report=html

# Parallel execution
pytest -n auto

ベストプラクティス

  • テスト間で変更可能な状態を共有せず、フィクスチャを使ってセットアップとティアダウンを行い、テストを独立させます
  • 期待される動作が伝わる、明確で説明的なテスト名を付けます
  • テストの実行順序に依存しないようにします。共通のフィクスチャには conftest.py を使用します
  • CI でテストスイート全体を実行します。カバレッジには --cov を使用し、早期に失敗させるには --maxfail=1 を使用します
  • マーカー(@pytest.mark.slow)でテストを分類し、対象を絞って実行します

リソース

キーワード

pytest、Python テスト、フィクスチャ、パラメーター化、モック、conftest、カバレッジ、pytest-cov、pytest-xdist、ユニットテスト、マーカー

コメント