仅适用于测试的型号

时间:2010-11-27 19:20:47

标签: django

我想定义仅在我的测试套件中使用的模型。如果不在生产中创建它,那就太好了。是否有任何变量我可以再次测试以检查我是否处于测试模式?

2 个答案:

答案 0 :(得分:0)

如果您使用Django testing frameworkpython manage.py test)运行测试,那么它将在完全不同的数据库中自动为您的模型创建所有表,然后从您的应用程序中填充这些表在运行测试之前的灯具。测试完成后,数据库将被删除。 (如果您的生产数据库名为foo,则测试数据库将被命名为foo_test,除非您specify differently。)

如果您拥有仅需要测试的模型,那么您所要做的就是将测试模型放在与测试代码相同的目录结构中,而不是与生产模型混合。这将确保它们不会无意中混入您的生产数据库。

答案 1 :(得分:0)

如果您使用最新版本的Django(我可以确认版本从1.4到1.6),并使用django.test,您可以将所有测试模型定义放在tests/__init__.py中。这样,您将在单元测试中使用测试模型,而不会污染生产数据库。