@rollback
職場では、選択したテスト関数でデコレーターを使用します。これは、そのテスト中に行われたデータベースの変更をロールバックします。
私は最近@pytest.mark.parametrize(...)
、フックとpytest_funcarg__XXX
フックの両方で、いくつかのユースケースに pytest の依存性注入を使い始めました。残念ながら、これは装飾されたテスト関数と衝突します。
どうすればこれを機能させることができますか?
私の最初のアイデアは、カスタム マーカーを使用することでした@pytest.mark.rollback
。
def rollback(meth):
"""Original rollback function"""
...
def pytest_runtest_setup(item):
if not isinstance(item, pytest.Function):
return
if hasattr(item.obj, 'rollback'):
item = rollback(item)
このようなアプローチは実際に機能しますか?