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



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

现在我正试图在a上编写一个测试,但仅仅运行manage.py test就立即失败了,因为a的一些模型依赖于来自B的表所覆盖的一些模型,而B的完整数据库表还没有创建。

所以我的问题是,我如何调整我的TEST_RUNNER,使其首先在B上根据B的测试数据库运行syncdb,这样当我在A上运行manage.py test时,它就可以从B中找到它所依赖的表?

我希望这是有道理的。

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

我终于运行了测试,下面是我所做的:

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

相关内容

最新更新