Django测试未在测试数据库上运行

时间:2020-03-21 02:03:41

标签: django database testing

在运行要在数据库中创建行的测试之后,我注意到使用了当前数据库,而不是像我认为是django的默认行为的测试数据库。不幸的是,我无法弄清楚如何解决此问题。

当前位于settings.py

DATABASES = {
    "default": {
        "ENGINE": "django.db.backends.postgresql",
        "NAME": os.environ["POSTGRES_NAME"],
        "USER": os.environ["POSTGRES_USER"],
        "PASSWORD": os.environ["POSTGRES_PASSWORD"],
        "HOST": os.environ["POSTGRES_HOST"],
        "PORT": os.environ["POSTGRES_PORT"],
    }
}

但是添加"TEST": {"NAME": "test_database"},时,它似乎仍在主数据库上运行。

DATABASES = {
    "default": {
        "ENGINE": "django.db.backends.postgresql",
        "NAME": os.environ["POSTGRES_NAME"],
        "USER": os.environ["POSTGRES_USER"],
        "PASSWORD": os.environ["POSTGRES_PASSWORD"],
        "HOST": os.environ["POSTGRES_HOST"],
        "PORT": os.environ["POSTGRES_PORT"],
        "TEST": {
            "NAME": "test_database",
        }
    }
}

如何获取以便测试写入新的测试数据库?

1 个答案:

答案 0 :(得分:0)

让您的测试在测试数据库上运行的一个关键步骤是使用TestCase中的django.test

因此它将正常运行。

from django.test import TestCase


class MyTests(TestCase):
    ...