不同阶段有不同的 initial_data 固定装置(测试与生产)

Posted

技术标签:

【中文标题】不同阶段有不同的 initial_data 固定装置(测试与生产)【英文标题】:Have different initial_data fixtures for different stages (testing v. production) 【发布时间】:2011-06-11 12:11:43 【问题描述】:

我有一个initial_data 固定装置,我想每次都加载它除了 用于生产。我已经有用于生产和非生产部署的不同设置文件。

关于如何完成此任务的任何建议?

澄清:我不想要测试夹具。基本上,我只需要根据某种设置更改来加载夹具。我将深入研究 Django 代码,看看是否能找到一种优雅的方式来完成此任务。

【问题讨论】:

【参考方案1】:

最简单的方法是使用manage.py testserver [fixture ...]

但是,如果这是一个暂存(而不是开发)部署,您可能不想使用 django 的内置服务器。在这种情况下,一种快速(如果很笨拙)的方法是在仅安装在非生产设置中的应用程序(例如,称为“未部署”)中安装固定装置。

【讨论】:

【参考方案2】:

如果您愿意,您实际上可以为每个测试设置不同的测试夹具: 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,让您可以从命令行快速轻松地完成此操作。

【讨论】:

对不起@hazmat。一开始我不是很清楚。不过谢谢你的回答!

以上是关于不同阶段有不同的 initial_data 固定装置(测试与生产)的主要内容,如果未能解决你的问题,请参考以下文章

软件生命周期

软件生命周期

Android 不同阶段 Logo 显示

如何在固定数量的部分中有不同的行?

如何为多对多关系创建 initial_data Json 夹具?

ACM-ICPC(9 / 26)