有時候在跑unittest的時候,需要一些前置作業,多半可以寫在setUp或tearDown上
pytest提供fixture, 可以定義每一次的跑unitest的session, module, class, method,都預先跑某個準備函式
例如,我希望跑unittest時先起一個mock database,並在結束時,關掉這個mock database
就可以寫在conftest.py上
#conftest.py
@pytest.fixture(scope="session", autouse=True)
def on_begin(request):
print "on_begin"
def on_finish():
print "in_finish"
request.addfinalizer(on_finish)