Django:为多个数据库站点编写测试

时间:2012-08-01 09:13:03

标签: python django

我有2个站点:A和B. A依赖于B中的一些表,因此它的DATABASES设置中有一个条目,指向B以及DATABASE_ROUTERS设置下的某些条目以路由某些模型访问B的数据库。

现在我正在尝试在A上编写测试,但只是运行manage.py test会立即失败,因为A的某些模型依赖于来自B的表覆盖的某些模型,而B的完整数据库表尚未创造了。

所以我的问题是,如何在B上针对B的测试数据库调整我的TEST_RUNNER首次运行syncdb,这样当我在A上运行manage.py test时,它可以找到来自B它依赖吗?

我希望这是有道理的。

2 个答案:

答案 0 :(得分:0)

如果测试不能将所有数据都放在一个数据库中(例如,测试的路由器设置不同),那么您应该考虑创建自己的TEST_RUNNER。也许this会指出你正确的方向!

答案 1 :(得分:0)

我终于让测试运行了,这就是我所做的:

  • 运行测试时禁用DATABASE_ROUTERS设置
  • DATABASES设置中维护B别名,但名称与A
  • 相同
  • 在A INSTALLED_APPS
  • 附加不存在的B INSTALLED_APPS