【パイテスト】

pytest とは?

公開:
💡 Pythonテストの「万能ナイフ」——シンプルなのに何でもできる
📌 このページのポイント
pytest の主要機能 シンプルなassert def test_add(): assert 1+1 == 2 特別な記法不要! fixture @pytest.fixture def db_conn(): return connect() 800+プラグイン pytest-cov pytest-xdist pytest-mock pytest-django テスト実行フロー テスト収集 test_*.py 検出 fixture準備 依存性注入 テスト実行 assert検証 レポート 結果出力
pytest の主要機能と実行フロー
ひよこ ひよこ
pytestって何がすごいの?
ペンギン先生 ペンギン先生
Pythonの標準的なassert文を使うだけでテストが書けるのが最大の魅力だよ。特別なメソッドを覚えなくても、assert result == 42 みたいに直感的に書けるんだ
ひよこ ひよこ
Python標準のunittestとはどう違うの?
ペンギン先生 ペンギン先生
unittestはJUnit由来でクラスベースだから、テストを書くのにお作法が多いんだ。pytestなら関数一つでテストが完結するし、失敗したときに「何が違ったか」を詳しく教えてくれるよ
ひよこ ひよこ
fixtureって何のこと?
ペンギン先生 ペンギン先生
テストの前準備をする仕組みだよ。たとえばデータベース接続やテストデータの作成を@pytest.fixtureで定義しておくと、テスト関数の引数に名前を書くだけで自動的に使えるんだ。スコープを指定すれば「テストごと」「クラスごと」「セッション全体で1回だけ」と実行タイミングも制御できるよ
ひよこ ひよこ
プラグインはどんなものがあるの?
ペンギン先生 ペンギン先生
pytest-covでカバレッジ計測、pytest-xdistでテストの並列実行、pytest-mockでモック作成など、800以上あるよ。pytest-djangoやpytest-asyncioなど、フレームワーク固有のプラグインも充実しているんだ
ひよこ ひよこ
大規模プロジェクトでも使えるの?
ペンギン先生 ペンギン先生
もちろん。conftest.pyという設定ファイルをディレクトリごとに配置して、fixtureやフックをスコープ管理できるんだ。実はpytestのフック機構は非常に強力で、テストの収集・実行・レポートのあらゆる段階をカスタマイズできる。大企業のCIパイプラインでも広く採用されているよ
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「pytest」って出てきたら「Pythonの定番テストツール」と思えればだいたいOK!
📖 おまけ:英語の意味
「pytest」 = Pythonテスト
💬 「py」はPython、「test」はテストのこと。小文字始まりの表記が正式名称だよ
← 用語集にもどる