使用Django进行测试:在测试数据库创建时卡住了

9
我遇到了一些运行应用程序测试的问题,我在这个之前的帖子中成功解决了它们。
现在,执行 python manage.py test 不会引发任何错误,但它会在数据库创建时卡住:
当测试数据库不存在时,它确实会在pgAdmin中创建,但是在此过程中卡住,并显示以下消息:
Creating test database for alias 'default'...

它被永久卡在这里,所以当我手动完成该进程并再次运行test时,它会显示数据库已存在,并提示我要么删除它并重新创建,要么取消该进程。我输入'yes',然后进程又被卡住了,并显示出另一个信息:

Destroying old test database 'default'...

当我使用pgAdmin时,我无法立即看到任何新的test_dbname数据库,但是如果我关闭并再次打开它,我就可以看到,那里有test_dbname,但是test任务仍然被卡住,无法完成...
解决此问题的方法是这个解决方案,禁用迁移。这样它就不会再卡在这些消息上,可以运行默认的测试。
.
----------------------------------------------------------------------
Ran 1 test in 0.002s

OK

然而,这似乎只是一个糟糕的解决方案和欺骗。运行测试时必须运行迁移,因此我看不到禁用它们的好理由。


你正在使用哪种类型的数据库? - Sam Bobel
@SamBobel 我正在使用 PostgreSQL。 - dabadaba
你在高详细度下运行它了吗?很可能是卡在了其中一个迁移上,这将告诉你是哪一个。 - Sam Bobel
1个回答

23

尝试运行python manage.py test --verbosity=2命令。这会告诉你它卡在哪里,然后你就可以从那里继续了。


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