【问题标题】:why django SimpleTestCase create test database为什么 django SimpleTestCase 创建测试数据库
【发布时间】:2015-01-28 17:41:20
【问题描述】:

正如this 问题和django docs 中所述,在单元测试中使用 SimpleTestCase 时,django 不应创建测试数据库(这需要太长时间)。

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

class TokenizerTestCase(SimpleTestCase):
    def test_one(self):
        self.assertItemsEqual(1, 1)

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

【问题讨论】:

  • 这家初创公司是什么样的?运行测试时 Django 会显示什么文本?
  • @SimeonVisser 在第一行写道:为别名“default”创建测试数据库...然后打印一些有关迁移的警告。

标签: django database performance unit-testing


【解决方案1】:

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

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

阅读源码here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-03-04
    • 1970-01-01
    • 2012-04-20
    • 2016-05-29
    • 2020-11-17
    • 1970-01-01
    • 2012-05-20
    • 1970-01-01
    相关资源
    最近更新 更多