在 setting.py 中设置 Django 并行测试

Setting up django parallel test in setting.py

你好,我知道可以通过 --parallel 标志在 django 中并行 运行 测试,例如。 python manage.py test --parallel 10。它确实加快了我正在从事的项目的测试速度,这真是太好了。但是公司的开发人员共享不同的硬件设置。所以理想情况下,我想在 ./app_name/settings.py 中放置并行参数,以便每个开发人员在测试中至少使用 4 个线程或多处理库提供的内核数。

我知道我可以制作另一个脚本让我们说 run_test.py 我在其中使用 --parallel,但我很想进行并行测试 'invisible'.

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

中的设置吗

非常感谢任何帮助。

没有针对此的设置,但您可以覆盖 test 命令以设置不同的默认值。在您安装的一个应用程序中,创建一个 .management.commands 子模块,并添加一个 test.py 文件。在那里你需要继承旧的测试命令:

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 test --parallel=1 仍将覆盖默认值。