Django在测试时未创建测试数据库

8

我正在运行新创建的Django项目的测试。

通常情况下,我期望在运行测试时会创建一个测试数据库。所有测试都正常运行,但是我发现当运行测试时,正在使用本地数据库(用于runserver)。错误的数据库中创建了大量不必要的数据。如何让我的测试设置再次使用正常的test_dabasename设置?

我不确定自己更改了什么导致这种情况,并且完全陷入困境。

class TestRest(TestCase):
    def setUp(self):
        ...

    def test_allowed_to_get_list_authenticated(self):
        ....

请检查这个工单,它有类似的答案可以回答你的问题 https://dev59.com/J2445IYBdhLWcg3w4-Fe#4650651 - issam abbas
@issamabbas 我可以进去编辑project.settings.test配置文件,像这样添加数据,但是我会遇到其他错误,例如:DATABASES["default"] = {"ENGINE": "django.db.backends.sqlite3", "NAME": "mydatabase"} 会导致 django.db.utils.OperationalError: no such table: base_user而 DATABASES["default"]["NAME"] = f"test_{os.getenv('DB_NAME')}" 则会导致 database "test_mitt_se" does not exist。 - Andreas
1个回答

17

找到了。我是一个糟糕的程序员 :(。

我从中导入了重复的内容

unittest.case import TestCase

当它本应该是

from django.test import TestCase

这导致没有测试数据库被创建。


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