Django 在测试中加载夹具之前call_command



是否可以在TestCase中加载夹具之前call_command()

此代码不起作用 - 无法加载夹具,因为组尚不存在。

class UserAPITestCase(APITestCase):
    fixtures = [
        'user/fixtures/user.json',
    ]
    def _fixture_setup(self):
        call_command('create_groups')
        super()._fixture_setup()

看起来夹具被加载到 setUpClass of TestCase 中,因此您可以在我们的测试类中覆盖它。

def setUpClass(cls):
    call_command('create_groups')
    super().setUpClass()

在进一步了解该方法后,这可能不适用于事务,因为您将在将内容包装到事务中之前加载数据库数据。如果你不改变这些组,我认为一切都会好起来的。抱歉,我没有设置自己的测试用例来确认。

如果这是一个问题,则将该命令创建的组转储到灯具的另一个选项:)

相关内容

最新更新