如何告诉pytest-xdist从一个文件夹开始依次运行测试,其余的并行运行?

时间:2019-12-27 09:43:03

标签: python pytest pytest-xdist

想象一下,我有test/unit/...可以安全地并行运行,还有test/functional/...不能并行运行。

是否有一种简单的方法可以说服pytest按顺序运行functional?考虑到我们正在谈论大量的测试,因此更改每个测试功能/方法会带来很大的麻烦。

此刻,我们使用标记过滤器运行测试,因此主要是分开运行它们。尽管如此,我仍在寻找一种解决方案,以消除将它们分开运行的需要。

1 个答案:

答案 0 :(得分:1)

您可以实现自己的调度程序,其作用类似于loadloadscope,具体取决于定义测试的模块。示例:

from xdist.scheduler.loadscope import LoadScopeScheduling


class MyScheduler(LoadScopeScheduling):
    def _split_scope(self, nodeid):
        if 'test/functional' in nodeid:
            return 'functional-tests'
        return nodeid


def pytest_xdist_make_scheduler(config, log):
    return MyScheduler(config, log)

test/functional下的所有测试将被分组在同一节点functional-tests下(并因此在同一工作程序中运行),其余测试将照常并行运行。