Django测试在创建数据库时卡住了。

3

这是我在Django中进行单元测试的第一次尝试,但进展并不顺利...

我遇到了非常奇怪的问题。当我使用以下命令启动测试:./manage.py test时,命令行会卡在"Creating test database for alias 'default'..."上。我等待了10分钟,什么都没有发生...无法取消(CTRL+C)这个操作。我必须关闭shell并重新开始。

如果我用"runserver"启动应用程序,一切正常。我注意到它正在创建一个名为"test_"的数据库,并在此之后停止,而没有提示任何错误。

有人对此有任何想法吗?


更多的代码或上下文会更有帮助。 - zallarak
什么数据库引擎?你尝试过测试整个套件还是单独一个应用程序吗?你的测试中启用了south吗? - ilvar
数据库是MySQL。我尝试调用一个单独的应用程序(swingtime,应该有良好的测试)。South已启用。在测试模式下有没有禁用它的方法? - Yann Boisclair-Roy
如果我从已安装的应用中删除South,它就可以工作!但是我正在使用South进行迁移。有没有办法在settings.py中知道我们是否处于测试模式?如果是这样,我可以删除South。 - Yann Boisclair-Roy
1个回答

2

终于成功了!

问题出在South插件上。如果将South插件加入到INSTALLED_APPS中,但没有设置"SOUTH_TESTS_MIGRATE=False",在创建测试数据库时它会停滞不前。这可能只是因为执行时间过长,但我等待了15分钟以上,它还是没有反应。

这里有关于此的文档: http://south.aeracode.org/docs/settings.html#south-tests-migrate


1
这真的让我很恼火,我根本没有使用South。:| - Amyth
4
对我来说,问题出现在我的 Mysql 服务器上,重新启动 Mysql 后问题解决了。 - Amyth

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