如何告诉 pytest-xdist 按顺序从一个文件夹运行测试,并并行运行其余文件夹?

2024-05-04

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

有没有一种简单的方法可以说服 pytest 运行functional依次?考虑到我们正在讨论大量的测试,因此改变每个测试函数/方法将会非常嘈杂。

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


您可以实现自己的调度程序,其作用类似于load or loadscope,取决于测试定义在哪个模块中。示例:

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(因此在同一个工作线程中运行),其余部分将像往常一样并行运行。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何告诉 pytest-xdist 按顺序从一个文件夹运行测试,并并行运行其余文件夹? 的相关文章

随机推荐