mat*_*der 13 django django-testing
我有两个我的网站使用的数据库,我有一个使用它们的应用程序.我需要编写一个TestCase来为两个数据库加载fixture.我使用的是数据库路由器,它在生产中运行良好,但在测试框架中,Django坚持对所有灯具使用"默认"数据库,即使对于指定其他数据库的模型也是如此.如何告诉Django针对另一个数据库运行一个夹具?
我的TestCase是定义列表:
class VerifierTestCase(TestCase):
fixtures = ['zipcodes_test.json', 'all_states.json', 'wtf.json']
multi_db = True
Run Code Online (Sandbox Code Playgroud)
实际上,Django 中有一个错误,如果您指定整个设备名称,它会导致它忽略基于名称的数据库特定指针。
所以如果你这样做fixtures = ["mydata.default.yaml", "mydata.myotherdatabase.yaml"]
它将把两个灯具加载到默认数据库中。
但如果你这样做fixtures = ['mydata']
它将正确加载。对于 dbengine 特定的文件名(例如mydata.default.postgresql.sql)也是如此。
夹具通过文件名针对特定数据库。在 TestCase 实例中也是如此,因为它们只是调用 loaddata 命令。
请参阅https://docs.djangoproject.com/en/dev/ref/django-admin/#database-specific-fixtures
| 归档时间: |
|
| 查看次数: |
1830 次 |
| 最近记录: |