繁体   English   中英

Django测试在创建测试数据库上浪费了太多时间

[英]Django testing wastes too much time on test database creating

我们试图对一个旧的,大型项目进行测试,该项目在数据库中有500多个表,并且在数据库创建(在我的RMBP上超过1个小时)和数据库迁移上浪费了太多时间。

我们使用PostgreSQL作为数据库,导致一些有关服务的GIS需要它,因此很难使用SQLite来替换它。

如何减少测试准备时间?

您可以使用django-nose并像这样重用数据库:

REUSE_DB=1 ./manage.py test

注意您的测试不要在数据库中留下任何垃圾。 请查看文档以获取更多信息。

在某个时候,我最终创建了一个事务管理中间件,该中间件将拦截事务调用,以便所有测试都在事务中运行,然后该事务在最后回滚。

另一种选择是在每个测试开始时加载一个二进制数据库转储,然后在测试之间删除并重新创建数据库。 创建良好的数据库后,使用xtrabackup创建它的转储。 然后,在每次测试设置功能中,删除并创建数据库,然后使用xtrabackup加载转储。 由于它是二进制转储,因此将很快加载。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM