本文へスキップ
totonoe.tech

フレームワークを整える

中級

pytest を整える

= 落ちるテスト(赤)を直して通るテスト(緑)にする往復を、ブラウザだけで体感する

サンプルコード(クリックで2つのタブに挿入)

PYTEST OUTPUT

サンプルを選ぶか自分でコードを書いて「▶ pytest 実行」を押すと、ここに結果が出ます。

使い方

「赤→緑」の往復で、テストの感覚をつかむ。

  1. 1

    通るテスト(緑)— まずは正しい期待値で

    assert 実際の値 == 期待する値 が成立すればテストは通る(緑)。

  2. 2

    落ちるテスト(赤)— pytest が差分を教えてくれる

    assert が失敗すると、pytest は実際の値と期待値の差分を表示する。「②落ちるテスト」で実際に見てみましょう。

  3. 3

    parametrize — 同じテストを複数パターンで

    @pytest.mark.parametrize で入力と期待値の組を並べれば、同じテスト関数のまま何通りも検査できる。

  4. 4

    pytest.raises — 「例外が起きること」もテストできる

    with pytest.raises(例外の型): の中で例外が起きればテストは成功、起きなければ失敗になる。

💡 初回は Pyodide(Python WASM)に加えて pytest パッケージの読み込みで数秒〜十数秒かかります。2 回目以降はキャッシュから瞬時にロード。 書いたコードと実行結果は、どこにも送信されません(すべてブラウザ内で実行)。

🌐 「▶ pytest 実行」を押した最初の1回だけ、Python の実行環境(Pyodide 0.28.0)と pytest パッケージを配信元の cdn.jsdelivr.net から取得します。 これはプログラムを受け取るだけの通信で、あなたが書いたコードや実行結果が送られることはありません。

このツールについて

テストは「動くこと」を確認するコード。まず赤(落ちるテスト)を見て、直して緑(通る)にする——その往復を、ブラウザの中だけで何度でも試せます。

テストを書いて実行できる練習場。まず落ちるテスト(赤)を見て、直して通るテスト(緑)にする往復をブラウザだけで体感。parametrize・pytest.raises まで。

主な機能

  • calc.py(テスト対象)と test_calc.py(テスト)の2タブ
  • 通る/落ちる/parametrize/pytest.raises の4サンプル
  • 落ちたテストは assert の差分をそのまま表示
  • Pyodide 上で pytest を実行・送信ゼロ

よくある質問

Q. pytest とは何ですか?

A. Python のテストを書いて実行するためのツールです。「実際の値が期待した値と一致するか」を assert で書き、通れば緑、落ちれば赤で教えてくれます。

Q. なぜテストコードとテスト対象を分けて書くのですか?

A. 「何を検査したいか」と「実際の処理」を分けることで、対象コードを直したときにテストがそのまま検査してくれるからです。

Q. parametrize や pytest.raises は何のためにありますか?

A. parametrize は同じテストに複数の入力を流し込んで1つずつ書く手間を省くもの、pytest.raises は「エラーが起きること自体」を検査するものです。

入力値はURLの「#」以降に入るためサーバーには送信されません。リンクを開くと同じ状態を復元します。

続けて整える

KOINOBORI ECOSYSTEM

私たちが運営するサイト