在我的Django项目中,我使用sqlite数据库来运行测试。由于它只使用内存,所以比MySQL快很多,但还是不够快。在测试过程中,4个处理器中只用了一个,占用的内存不多。所以,我想在内存里有4个sqlite数据库,来并行运行4个测试。
有人试过这样做吗?
从Django 1.9开始,就可以通过Django内置的单元测试功能来并行运行测试了。
Django Docs。https:/docs.djangoproject.comen3.0refdjango-admin#cmdoption-test-parallel
你可以使用这里描述的Django和Twisted的并行测试运行程序。http:/www.tomaz.me20110403making-django-and-twisted-tests-faster.html (源头在此) https:/github.comKamiparallel-django-and-twisted-test-runner。 - 链接在文章最后)。) 你可以按照Django文档中关于测试的描述来使用它。
还有一个鼻子并行测试运行器。
根据Django 3.0的 文档 有 --parallel
选项,你可以使用。
--parallel [N] 在不同的并行进程中运行测试。由于现代处理器有多个内核,这使得运行测试的速度大大加快。
所以你可以使用下面的命令来并行执行测试。
python manage.py test --parallel
您可以通过提供该选项的值来调整进程数,例如--parallel=4,或者通过设置 DJANGO_TEST_PROCESSES 环境变量。
如果你有一个大型的Django项目,有相当多的测试单元案例,这可以帮助你大大减少测试执行时间。
你可以很容易地将Linux上的应用程序的测试分开来进行。
$ python manage.py test cms & \
python manage.py test blog & \
python manage.py test store & \
python manage.py test registration
$
对于有很多应用程序的大项目来说,这很有帮助,最好的办法是用一个bash脚本,每四个应用程序运行一次测试。