我在pytest-django中有一个测试套件,我想在测试开始时创建一个数据库,然后在测试完成后立即删除该数据库,以便模拟场景而不保留大量数据。 任何帮助,将不胜感激。预先感谢!
答案 0 :(得分:0)
使用yield
而不是return
的{{3}}优势。这使您可以设置数据库,如果需要返回任何数据,然后执行任何清理。如果您希望对每个测试都执行此操作,而不考虑是否声明使用夹具的测试功能,请将autouse
设置为True
。
@pytest.fixture(autouse=False)
def db():
# Setup DB here
# Yield some data, database connection or nothing at all
yield None
# Delete DB here when the test ends
def test_something(db):
# Database will be ready here and db will contain whatever
# db() function yields. With autouse=True you don't need to
# set the db fixture as the function param.
pass