我有一个initial_data
我想每次都加载的夹具,除了生产。我已经有用于生产和非生产部署的不同设置文件。
关于如何做到这一点的任何建议?
澄清:我不想要测试夹具。基本上,我只需要根据某种设置更改来加载夹具。我将深入研究 Django 代码,看看是否能找到一种优雅的方式来完成此任务。
我有一个initial_data
我想每次都加载的夹具,除了生产。我已经有用于生产和非生产部署的不同设置文件。
关于如何做到这一点的任何建议?
澄清:我不想要测试夹具。基本上,我只需要根据某种设置更改来加载夹具。我将深入研究 Django 代码,看看是否能找到一种优雅的方式来完成此任务。
如果需要,您实际上可以为每个测试设置不同的测试夹具:http: //docs.djangoproject.com/en/dev/topics/testing/#topics-testing-fixtures
如果您只想一次性加载固定装置,您还可以编写一个自定义的 TestRunner,它允许您在开始时进行该设置:
docs.djangoproject.com/en/dev/topics/testing/#using-different-testing-frameworks
这两个仍然会从生产设备中加载数据,就像使用 syncdb 完成的那样,但是您可以覆盖数据,甚至将其全部删除。如果您将大量数据加载到生产产品中,这可能不是最佳选择。如果是这种情况,我建议您添加一个自定义命令,例如 load_production_data,让您可以从命令行快速轻松地执行此操作。
最简单的方法是使用manage.py testserver [fixture ...]
但是,如果这是一个暂存(而不是开发)部署,您可能不想使用 django 的内置服务器。在这种情况下,一种快速(如果很笨拙)的方法是在仅安装在非生产设置中的应用程序(例如,称为“未部署”)中安装固定装置。