0

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

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

所以我的问题是,我如何调整我TEST_RUNNER的第一次syncdb在 B 上针对 B 的测试数据库运行,然后当我manage.py test在 A 上运行时,它可以从 B 中找到它所依赖的表?

我希望这是有道理的。

4

2 回答 2

0

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

  • DATABASE_ROUTERS运行测试时禁用设置
  • 在设置中维护B别名DATABASES但名称与A相同
  • INSTALLED_APPS将不存在的B 附加到 AINSTALLED_APPS
于 2012-08-01T11:25:58.467 回答
0

如果您的测试不能选择将所有数据放在一个数据库中(例如,为测试设置不同的路由器设置),您应该考虑创建自己的TEST_RUNNER. 也许将为您指明正确的方向!

于 2012-08-01T09:23:00.570 回答