我正在将 pytest 与 Django 一起使用(通过pytest-django),我想知道是否有可能有一个范围固定装置class
在数据库中创建一些模型,然后在每次测试结束时不删除这些模型。
例如;
@pytest.fixture(scope='class')
def expensive():
return MyModel.objects.create()
@pytest.mark.django_db()
class TestMyModel:
def test_a(self, expensive):
MyModel.objects.get() # All good
def test_b(self, expensive):
MyModel.objects.get() # raises MyModel.DoesNotExist
这只是一个简化的示例,在我的实际代码中,夹具expensive
实际上正在做一些需要一些时间的事情(我实际上正在使用参数化测试,但我想这不会有任何区别)。我希望夹具中创建的数据expensive
一旦超出类的范围就会回滚,以免干扰其他测试。
似乎我正在尝试做的事情可能可以使用夹具django_db_blocker但是我无法让它按照我想要的方式运行。