使用旧数据库测试django应用程序 - 如何避免每次测试重新创建数据库?

时间:2010-01-04 22:27:17

标签: database django testing legacy

我正在使用带有强制数据库架构和数据的Django1.1框架构建Web应用程序(事实上 - db已经存在 - Postgresql)。我已经写了模型,现在我想进行一些单元测试。

问题:测试运行器在每个测试方法之后销毁并重建(使用来自模型的信息)数据库,但这是不合需要的。我想一直保留至少架构,数据清理是可以接受的。有没有一种很好的方法来获得这种行为?

(一种解决方案是使用纯单元测试模块,手动设置/清洁所有内容,但这并不令人满意)

2 个答案:

答案 0 :(得分:2)

经过一些重新谷歌搜索(第一次尝试是在几周前,因为它出现在一个月之前就找不到了)我找到this topic,这导致我django-test-utils; persistent database test runner(例如python manage.py quicktest)解决了我的问题(此外,它似乎是一般的好app)。另外,我必须将TEST_DATABASE_NAME中的settings.py选项调整到我的主数据库以满足我的需求。

答案 1 :(得分:0)

这并没有为您提供所要求的行为,只是潜在的替代行为:

当我针对我的实际遗留数据库部署和运行集成测试时,我对SQLite数据库运行单元测试。这是一个小的配置更改,切换数据库引擎以使其正常工作。它最终会更快,并避免破坏我正在做的任何其他工作。