📚

pytestでtodo test

2022/10/22に公開

問題

  • pytestでテストを書いている
  • あるケースについて実装している際に他のケースを思いついたのでtodoとしておきたい
  • 仕様のリストを整理したのであらかじめtodoとして一覧しておきたい
  • todoコメントでもいいが、できればテスト結果に表示したい
  • jestでいうところの test.todo() を書きたい

対応

markを使う。
ドキュメントは https://docs.pytest.org/en/7.1.x/reference/reference.html#pytest-mark-skip

import pytest

from src.domains.foo.domain import Domain as Foo

def test_foo():
    Foo()

@pytest.mark.skip(reason="todo")
def test_bar():
    pass

出力は下記。

> pytest -rs test/
============= test session starts ==============
collected 2 items                               

test\test_domain.py .s                    [100%] 

=========== short test summary info ============ 
SKIPPED [1] test\test_domain.py:8: todo
========= 1 passed, 1 skipped in 0.02s ========= 

Discussion