2

我有一些 Django 单元测试继承自django.test.TestCase. 这在使用默认数据库时很有帮助,因为 Django 将在每次测试之间“重置”数据库;即每个测试都是独立运行的,之前的测试中创建的数据库对象不会影响当前的测试。

但是,我已经开始使用第二个非默认数据库,并且第二个数据库不会像我期望的那样在测试之间重置。Django 是否提供了一种在单元测试之间重置非默认数据库的方法?如果没有,我如何重置该数据库以保持我的测试隔离?

注意:我使用的是 Django 1.4.5。如果这在 Django 的更新版本中发生了变化,我很想听听它。

4

1 回答 1

2

multi_db在您的测试用例中使用该选项。

因为刷新操作可能很昂贵,所以 Django 只刷新默认数据库为默认值。但是,multi_db在测试用例中使用该选项会指示 Django 刷新所有数据库,而不仅仅是默认数据库。

例如。来自 Django 文档。

class TestMyViews(TestCase):
    multi_db = True

    def testIndexPageView(self):
        call_some_test_code()
于 2013-10-01T00:48:26.353 回答