【发布时间】:2018-09-22 09:31:48
【问题描述】:
我是 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 使用单独的数据库进行测试,在您运行测试时创建和销毁。
-
感谢丹尼尔的回答。我可以在下面的测试函数中访问存储在真实 pg 数据库中的其他真实数据,如果 django 为“test_user”记录创建一个单独的临时数据库,这意味着 django 测试模块同时使用真实 pg 数据库和单独的临时数据库来服务我测试代码?如果django在real pg db中找不到记录,就会去自己创建的单独的db,是不是?
标签: django postgresql unit-testing