django - 为 TestCase 设备指定数据库

标签 django django-testing

我有我的网站使用的两个数据库,我有一个使用这两个数据库的应用程序。我需要编写一个测试用例来加载两个数据库的夹具。我使用了一个 DB 路由器,它在生产中运行良好,但在测试框架中,Django 坚持对所有设备使用“默认”数据库,即使是指定其他数据库的模型也是如此。我如何告诉 Django 对另一个数据库运行夹具?

我的 TestCase 是定义列表:

class VerifierTestCase(TestCase):
    fixtures = ['zipcodes_test.json', 'all_states.json', 'wtf.json']
    multi_db = True

最佳答案

实际上,Django 中存在一个错误,如果您指定整个设备名称,它会导致它忽略基于名称的特定于数据库的指针。

所以如果你这样做 fixtures = ["mydata.default.yaml", "mydata.myotherdatabase.yaml"]
它将两个装置加载到默认数据库中。

但如果你这样做 fixtures = ['mydata']
它将正确加载。对于特定于 dbengine 的文件名(例如 mydata.default.postgresql.sql )也是如此。

关于django - 为 TestCase 设备指定数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4084220/

相关文章:

python - Django auth.models 用户一对多(1048, "Column ' user_id'不能为空”)

python - 如何在使用中间页面(在 Django 中)执行自定义管理操作后显示确认消息?

python - Django ManyToManyField 创建问题

python - Django 模拟未按预期工作

django 测试客户端获取所有 url 的 404

django - 如何在 django rest 框架中定义列表字段?

python - Django-在运行服务器中指定 url

django - 使用多个遗留数据库测试 django 应用程序

python - Django 测试在测试数据库创建上浪费了太多时间

python - Django 单元测试 : model. all() 查询集在单独线程中运行的方法中为空