Django 在测试时保存了一个模型实例,但在真实数据库中找不到它

标签 django postgresql unit-testing

我是Django新手,在做测试的时候,我在setup()函数中新建了一条测试模型记录,用于下面的测试,成功了,下面的代码可以访问记录,但是当我去查看真实数据库,新记录不存在。

设置代码如下:

class UserTest(TestCase):
    def setUp(self):
        test_user = User.object.create(name='test')

当我在 setUp() 函数中设置断点,并且在创建了 'test_user' 之后,我可以使用 'User.object.get()' 来获取创建的用户,但是当我转到真实数据库并且查看用户表,我找不到这条记录。顺便说一下,我使用 postgreSQL。

测试运行器正在使用这个:

class NoDBTestRunner(DiscoverRunner):
    def setup_databases(self, **kwargs):
        pass
    def teardown_databases(self, old_config, **kwargs):
        pass

我想知道创建的数据记录存放在哪里? 任何建议都会很有帮助

最佳答案

Django 单元测试创​​建一个单独的数据库用于测试。不使用主数据库以避免测试可能导致的错误。

关于Django 在测试时保存了一个模型实例,但在真实数据库中找不到它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49793000/

相关文章:

sql - 如何使用 SQL 查看序列详细信息

sql - 根据顺序随机选择行?

Django List 删除当前对象将被删除的对象

python - 在 Django Rest Framework 中下拉外键选择

python - 类型错误 : string indices must be integers When Checking array with dictionaries

python - 如何编写单元测试以确保我的代码遵循 HTTP 重定向?

javascript - 出于测试目的生成无效文件名

python - 检查具有 OneToOneField 的对象是新的还是已经存在

sql - 从另一个表更新一个表

c# - 通过访问数据库来测试 Entity Framework 数据