1
在工作中,我們在選定的測試函數上使用裝飾器@rollback
,這將回滾測試期間所做的任何db更改。pytest:在裝飾器中使用依賴注入
我最近開始在幾個使用情況下使用pytest的依賴注入,這兩種情況都使用@pytest.mark.parametrize(...)
和pytest_funcarg__XXX
鉤子。不幸的是,這與我們裝飾的測試功能相沖突。
我該如何做這項工作?
我最初的想法是使用自定義標記,說@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)
能否會像這樣的辦法真的有效麼?