在项目数据库上运行Django测试

时间:2015-06-04 13:37:50

标签: django

在我的Django项目中,将所有模型实例加载到新的测试数据库中需要花费太多时间。我的测试模块是否可以针对相同的项目数据库(project_db)而不是测试数据库(test_project_db)运行,因为我将查询相同的模型实例?

2 个答案:

答案 0 :(得分:0)

我真的建议您编写不需要完整生产数据库的测试。你可以创建灯具来获得初始数据(尽可能多,但没有你在prod db中那么多)。或者使用mixermock等工具。是的,https://pypi.python.org/pypi/django-nose/正如sthzg建议的那样(快速装置!)也值得一试。

@Brandon说,“对生产数据库进行测试就是自杀”是完全正确的。代码中的一个错误可能会破坏您的生产数据库。此外,拥有固定装置和一致的数据将为您提供可靠的测试结果,而生产数据库将始终发生变化,测试可以无中断,而您根本不知道为什么。

答案 1 :(得分:0)

如果您小心编写独立测试,那么--keep-db标志可以为您提供所需的加速,而不会使您的生产数据处于危险之中:

~ $ django-admin.py help test

[snip]

optional arguments:

[snip]

  -k, --keepdb          Preserves the test DB between runs.

[snip]
相关问题