为什么Django的SimpleTestCase会创建测试数据库

7
按照问题和django文档所述,使用SimpleTestCase进行单元测试时,django不应创建测试数据库(这需要太长时间)。
在名为"search"的一个应用程序中,我有一些继承自SimpleTestCase的单元测试。这是搜索应用程序中的tests.py:
class TokenizerTestCase(SimpleTestCase):
    def test_one(self):
        self.assertItemsEqual(1, 1)

当我调用python manage.py test search.tests.TokenizerTestCase时,构建默认数据库需要太长时间了。有没有人知道为什么它会为测试创建数据库?

创业公司是什么样子?当您运行测试时,Django显示哪些文本? - Simeon Visser
@SimeonVisser 首先它会写下以下内容:正在为别名“default”创建测试数据库...然后它会打印一些关于迁移的警告。 - Ali
1个回答

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

覆盖 _pre_setup_post_teardown 方法。有关更多信息,请阅读 TransactionTestCase 的源代码,了解其如何创建测试数据库结构。

请在此处阅读源代码


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接