如 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
时,构建默认数据库花费的时间太长。有人知道它为什么要创建测试数据库吗?
最佳答案
默认情况下,SimpleTestCase
创建一个测试数据库。您可以扩展该类以获得您自己的功能。如果您不想在每个设置中创建自己的数据库,请设置您自己的扩展类的测试环境。
覆盖 _pre_setup 和 _post_teardown 方法。有关详细信息,请阅读 TransactionTestCase
的源代码,了解它如何创建测试数据库结构。
阅读源码here
关于django - 为什么 django SimpleTestCase 创建测试数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27216171/