フレームワークを整える
中級pytest を整える。
= 落ちるテスト(赤)を直して通るテスト(緑)にする往復を、ブラウザだけで体感する
サンプルコード(クリックで2つのタブに挿入)
PYTEST OUTPUT
サンプルを選ぶか自分でコードを書いて「▶ pytest 実行」を押すと、ここに結果が出ます。
使い方
「赤→緑」の往復で、テストの感覚をつかむ。
- 1
通るテスト(緑)— まずは正しい期待値で
assert 実際の値 == 期待する値が成立すればテストは通る(緑)。 - 2
落ちるテスト(赤)— pytest が差分を教えてくれる
assert が失敗すると、pytest は実際の値と期待値の差分を表示する。「②落ちるテスト」で実際に見てみましょう。
- 3
parametrize — 同じテストを複数パターンで
@pytest.mark.parametrizeで入力と期待値の組を並べれば、同じテスト関数のまま何通りも検査できる。 - 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の「#」以降に入るためサーバーには送信されません。リンクを開くと同じ状態を復元します。