テストをスキップする
pytestのマーカーについて.
目次
テストをスキップする
テストの書き方
@pytest.mark.skip(reason="メモ") |
ここでreason
はテストをスキップする理由のメモである.
reasonの表示
pytest
コマンドのr
オプションでこのスキップした理由reason
を表示できる.
pytest
コマンドのa
オプションでは成功したもの以外全てを対象に取れるので,
pytest -ra |
で成功したもの以外全ての理由を表示できる.
ある条件を満たす場合にテストをスキップする
特定の条件下でテストをスキップするために,
@pytest.mark.skipif(条件, reason="メモ") |
という書き方が用意されている.
テストが失敗すると想定する
xfail
マーカーにより予め失敗を想定しておくことで,pytest
コマンド実行時,失敗するテストにはFAILED
に代えてXFAIL
が表示されるようになる.
@pytest.mark.xfail(条件, reason="メモ", strict=True) |
ここでstrict
は,失敗を想定するテストが偶然成功してしまった場合の結果報告のあり方を規定する.
strict=False
のとき,XPASS
となる.strict=True
では,FAILED
となる.
警告をスキップする
filterwarnings
マーカーを使う.
ignore:
以下で正規表現によって警告文を指定すると,テストは実行されるが警告表示を抑制することができる.
たとえば,警告文の文末が"Primary key columns typically may not store NULL."なら、
@pytest.mark.filterwarnings("ignore:.*Primary key columns typically may not store NULL.") |
とする.