pytest
にpytest.mark.parametrize()
パラメータとして呼び出し可能を指定する方法はありますか?テストが実行されるように選択された場合にのみ、パラメータが動的に生成されるようにしますか?pytest parametrize()パラメータとして呼び出し可能メソッドを使用するには?
私はパラメータを生成するために実行するためにいくつかの高価な操作をしており、テストが実行されるように選択されている場合にのみ実行します。
例えば、
import pytest
def my_callable():
# do expensive operations here
return [(1, 2), (3, 6)]
# I want my_callable to be called only if test_something
# has been selected to be run
@pytest.mark.parametrize("my_parm_1,my_parm_2", my_callable)
def test_something(my_parm_1, my_parm_2):
assert my_parm_1 * 2 == my_parm_2
これはすべてpytest側の小さな欠点のようです。多分、pytestにバグを報告して、修飾されたテストが実行される瞬間にパラメータの評価を遅らせる(またはそれを行うデコレータパラメータを追加する)ことを検討する価値があります。 – sophros