我正在一个django项目中,我所有的单元测试用例都运行良好。
当我引入第二个数据库后,我从TestCase继承的所有测试用例都被破坏了。在这个阶段,我还没有为第二个数据库建立任何测试用例,但是我的路由器工作正常。
当我运行测试时,我得到了错误,
“KeyError:'SUPPORTS_TRANSACTIONS'”
在我看来,这是在尝试检查所有我设置的数据库都支持事务,但从未创建第二个数据库。
关于如何使用测试脚本来构建第二个数据库的任何想法。
最佳答案
我意识到这是一个很旧的线程,但是我遇到了同样的问题,我的决心是将multi_db = True
标志添加到我的测试用例中,例如:
class TestThingWithMultipleDatabases(TestCase):
multi_db = True
def test_thing(self):
pass
来源https://github.com/django/django/blob/master/django/test/testcases.py#L861
这导致django在所有数据库上调用
flush
(如果支持事务,则回滚)我也正在使用数据库路由器
恐怕我在Django的文档中找不到此内容,因此没有链接
关于django - 在多个数据库上的django单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4161223/