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

时间:2017-06-06 13:19:05

标签: python django unit-testing parallel-processing parallel-testing

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

我知道我可以制作另一个脚本,让我说run_test.py我使用--parallel,但我很乐意进行并行测试'隐形'

总结一下 - 我的问题是:我可以在django app的设置中放置多个并行测试运行吗? 如果答案是肯定的。还有第二个问题 - 命令行参数(X)manage.py --parallel X会覆盖' ./ app_name / settings'

中的设置

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:3)

没有此设置,但您可以覆盖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仍将覆盖默认值。