加速Django的单元测试

时间:2011-12-31 03:26:08

标签: django performance unit-testing

我发现执行unittest的速度很慢,尤其是Django中的数据库操作。

它经历了创建数据库,表格,固定装置,然后测试并最终销毁它们的整个过程。

我甚至花了差不多半分钟来做这些事情。

在不考虑机器速度的情况下,有没有其他方法可以加速Django的单元测试或任何加速技巧?

3 个答案:

答案 0 :(得分:2)

当我想运行测试时,我所做的就是切换到SQLite。在SQLite中设置测试数据库所需的时间要少得多。

您可以使用修改后的设置文件轻松完成此操作:

$ python manage.py test my_app --settings=test_settings

或者就我而言,

$ python manage.py test my_app --settings=settings.test

因为我使用“设置为包”方案。

答案 1 :(得分:2)

您可以加快在sqlite db stored in memory

中运行测试的速度
    DATABASES['default'] = {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': ':memory:'
    }

答案 2 :(得分:0)

看看this article。它有许多有用的提示,如:

  • 将密码哈希功能更改为MD5(对我来说有了很大改进)。
  • 使用速度更快的内存数据库。
  • 禁用不需要的应用和中间件。