如何在Django中并行运行测试?

时间:2011-03-14 20:03:17

标签: django testing parallel-processing

在我的Django项目中,我使用sqlite数据库来运行测试。因为它只使用内存,所以它比MySQL快得多,但它仍然不够快。在测试期间,仅使用4个处理器中的一个,并且消耗的内存不多。所以,我想在内存中有4个sqlite数据库来并行运行4个测试。

有没有人试过这个?

4 个答案:

答案 0 :(得分:20)

自Django 1.9以来,Django可以通过内置的单元测试功能并行运行测试。

Django文档:https://docs.djangoproject.com/en/1.9/ref/django-admin/#django-admin-option---parallel

答案 1 :(得分:2)

你可以在这里描述Django和Twisted的并行测试运行器:http://www.tomaz.me/2011/04/03/making-django-and-twisted-tests-faster.html(源生活在这里https://github.com/Kami/parallel-django-and-twisted-test-runner - 链接在帖子的末尾)。您可以按照Django文档中的描述进行测试。

还有一个鼻子平行测试跑步者。

答案 2 :(得分:1)

根据Django 3.0 documentation,您可以使用一个--parallel选项。

-平行[N] 在单独的并行进程中运行测试。由于现代处理器具有多个内核,因此可以更快地运行测试。

因此您可以使用以下命令并行执行测试。

python manage.py test --parallel

您可以通过将其作为选项的值(例如, --parallel = 4,或设置DJANGO_TEST_PROCESSES环境变量。

如果您的大型Django项目中有很多测试用例,则可以大大减少测试执行时间。

答案 3 :(得分:-3)

您可以通过以下方式轻松拆分Linux上parrallalel上的应用程序测试:

$ python manage.py test cms & \
python manage.py test blog & \
python manage.py test store & \
python manage.py test registration
$ 

对于包含大量应用程序的大型项目可能会有所帮助,最好的是每四个应用程序运行测试的bash脚本。