为什么django SimpleTestCase创建测试数据库

Ali*_*Ali 6 database django performance unit-testing

正如问题和django文档中所解释的,当在单元测试中使用SimpleTestCase时,django不应该创建测试数据库(这需要太长时间).

在我的一个名为"search"的应用程序中,我有一些继承自SimpleTestCase的单元测试.这是在搜索应用程序中的tests.py:

class TokenizerTestCase(SimpleTestCase):
    def test_one(self):
        self.assertItemsEqual(1, 1)
Run Code Online (Sandbox Code Playgroud)

当我打电话python manage.py test search.tests.TokenizerTestCase时,构建默认数据库需要很长时间.有人知道为什么要为测试创建数据库吗?

Arp*_*yal 3

默认情况下SimpleTestCase创建一个测试数据库。您可以扩展该类以实现您自己的功能。如果您不想在每个设置中创建自己的数据库,请设置您自己的测试环境来扩展类。

重写 _pre_setup 和 _post_teardown 方法。有关更多信息,请阅读源代码,了解TransactionTestCase它如何创建测试数据库结构。

在这里阅读源代码