【问题标题】:Django test freeze at database creationDjango 测试冻结在数据库创建
【发布时间】:2012-05-20 08:30:45
【问题描述】:

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

我有一些很奇怪的东西。当我使用以下命令启动测试时:./manage.py test,命令行冻结在“为别名'default'创建测试数据库......”。我已经等了 10 分钟,什么都没有……无法取消 (CTRL+C) 这件事。我必须关闭 shell 并重新开始。

如果我“运行服务器”应用程序,一切正常。我看到它正在使用所有表创建一个名为“test_”的数据库,但之后立即停止,没有提示任何错误或其他什么。

有人知道这一切吗?

【问题讨论】:

  • 更多代码或上下文会有所帮助
  • 什么数据库引擎?您是否尝试过测试整个套件或一个单独的应用程序?您是否为测试启用了南?
  • 数据库是 MySQL。我试图调用一个单独的应用程序(swingtime,它应该有很好的测试)。南已启用。有没有办法在测试模式下禁用它?
  • 如果我从已安装的应用程序中删除 South,它可以工作!但我正在使用 South 进行迁移。有没有办法在 settings.py 中知道我们是否处于测试模式?如果是这样,我可以移除南。

标签: python django unit-testing


【解决方案1】:

终于成功了!

问题来自南方。如果 South 在 INSTALLED_APPS 中,没有设置“SOUTH_TESTS_MIGRATE = False”,它会在创建测试数据库时冻结。也许只是执行时间太长,但我已经等了超过 15 分钟,它仍然冻结。

以下是关于此的文档: http://south.aeracode.org/docs/settings.html#south-tests-migrate

【讨论】:

  • 目前这让我很生气,我什至根本没有使用 South。 :|
  • 对我来说,是我的Mysql 服务器在运行,在重新启动 Mysql 时它工作正常。
猜你喜欢
  • 2017-09-17
  • 2017-05-28
  • 2020-11-17
  • 2012-04-20
  • 1970-01-01
  • 2019-09-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多