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

问题描述 投票:26回答:3

在我的Django项目中,我使用sqlite数据库来运行测试。由于它只使用内存,所以比MySQL快很多,但还是不够快。在测试过程中,4个处理器中只用了一个,占用的内存不多。所以,我想在内存里有4个sqlite数据库,来并行运行4个测试。

有人试过这样做吗?

django testing parallel-processing
3个回答
22
投票

从Django 1.9开始,就可以通过Django内置的单元测试功能来并行运行测试了。

Django Docs。https:/docs.djangoproject.comen3.0refdjango-admin#cmdoption-test-parallel


2
投票

你可以使用这里描述的Django和Twisted的并行测试运行程序。http:/www.tomaz.me20110403making-django-and-twisted-tests-faster.html (源头在此) https:/github.comKamiparallel-django-and-twisted-test-runner。 - 链接在文章最后)。) 你可以按照Django文档中关于测试的描述来使用它。

还有一个鼻子并行测试运行器。


0
投票

根据Django 3.0的 文档--parallel 选项,你可以使用。

--parallel [N] 在不同的并行进程中运行测试。由于现代处理器有多个内核,这使得运行测试的速度大大加快。

所以你可以使用下面的命令来并行执行测试。

python manage.py test --parallel

您可以通过提供该选项的值来调整进程数,例如--parallel=4,或者通过设置 DJANGO_TEST_PROCESSES 环境变量。

如果你有一个大型的Django项目,有相当多的测试单元案例,这可以帮助你大大减少测试执行时间。


-5
投票

你可以很容易地将Linux上的应用程序的测试分开来进行。

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

对于有很多应用程序的大项目来说,这很有帮助,最好的办法是用一个bash脚本,每四个应用程序运行一次测试。

© www.soinside.com 2019 - 2024. All rights reserved.