日々精進

新しく学んだことを書き留めていきます

pytestでparameterized test

以下のように@pytest.mark.parametrizeを使ってparameterized testができる。 テスト失敗したらその時のパラメータの値もログに出るし,便利。

testdata = [
    (datetime(2001, 12, 12), datetime(2001, 12, 11), timedelta(1)),
    (datetime(2001, 12, 11), datetime(2001, 12, 12), timedelta(-1)),
]


@pytest.mark.parametrize("a,b,expected", testdata)
def test_timedistance_v0(a, b, expected):
    diff = a - b
    assert diff == expected

参考:

doc.pytest.org