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