2

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

关于如何做到这一点的任何建议?

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

4

2 回答 2

1

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

于 2011-01-19T04:26:52.717 回答
0

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

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

于 2011-01-19T04:45:29.173 回答