Python 在Setting.py中设置django并行测试

Python 在Setting.py中设置django并行测试,python,django,unit-testing,parallel-processing,parallel-testing,Python,Django,Unit Testing,Parallel Processing,Parallel Testing,您好,我知道可以通过--parallel标志在django中并行运行测试,例如python manage.py测试--parallel 10。它确实加快了我工作的项目的测试速度,这真的很好。但该公司的开发人员共享不同的硬件设置。因此,理想情况下,我希望将parallel参数放在/app\u name/settings.py中,以便每个开发人员在测试中至少使用4个线程或多处理库提供的内核数 我知道我可以制作另一个脚本,比如说run_test.py,其中我使用了--parallel,但我很想让并行测

您好,我知道可以通过
--parallel
标志在django中并行运行测试,例如
python manage.py测试--parallel 10
。它确实加快了我工作的项目的测试速度,这真的很好。但该公司的开发人员共享不同的硬件设置。因此,理想情况下,我希望将parallel参数放在
/app\u name/settings.py
中,以便每个开发人员在测试中至少使用4个线程或多处理库提供的内核数

我知道我可以制作另一个脚本,比如说
run_test.py
,其中我使用了
--parallel
,但我很想让并行测试“不可见”

总而言之,我的问题是:我可以在django应用程序的设置中设置并行测试运行的次数吗? 如果答案是肯定的。还有第二个问题-命令行参数(X)
manage.py--parallel X
会覆盖“/app\u name/settings”中的设置吗


非常感谢您的帮助。

对此没有设置,但是您可以覆盖
test
命令来设置不同的默认值。在一个已安装的应用程序中,创建
.management.commands
子模块,并添加
test.py
文件。在这里,您需要对旧的test命令进行子类化:

from django.conf import settings
from django.core.management.commands.test import Command as TestCommand

class Command(TestCommand):
    def add_arguments(self, parser):
        super().add_arguments(parser)
        if hasattr(settings, 'TEST_PARALLEL_PROCESSES'):
            parser.set_defaults(parallel=settings.TEST_PARALLEL_PROCESSES)

这将为
--parallel
标志添加一个新的默认值。运行
python manage.py测试--parallel=1
仍将覆盖默认值

工作很有魅力!非常感谢你。代码有两个小小的错误:应该有“:”在if语句中,应该有“set_defaults”而不是“set_default”。再次感谢您,您节省了数小时的测试执行时间:)。@AlexBaranowski修复:)