3

我有一些复杂而繁重的逻辑来构建测试对象,并且测试运行时间很长。它们是集成测试,我想尝试将它们并行化一点。所以我找到了 pytest-xdist 库。

由于构建测试对象的繁重性质,我在夹具上使用 pytests 间接功能在测试时而不是在收集时构建它们。我用于测试的一些代码可以在下面找到。

#run.py
import pytest

@pytest.mark.parametrize("attribute",(
    ["pid1", ["pod1", "pod2", "pod3"]],
    ["pid2", ["pod2", "pod4", "pod5"]]
), indirect=True)
class TestSampleWithScenarios(object):
    @pytest.fixture(scope="class")
    def attribute(request):
        # checkout the pod here
        # build the device object and yield
        device = {}
        yield device
        # teardown the device object
        # release pod


    def test_demo1(self, attribute):
        assert isinstance(attribute, str)

    def test_demo2(self, attribute):
        assert isinstance(attribute, str)

我的运行命令目前是pytest run.py -n 4 --dist=loadscope

当我不使用 loadscope 时,所有测试都发送给他们自己的工作人员。我不想这样做,因为我只想构建一次设备对象并将其用于所有相关测试。

当我使用 loadscope 时,所有测试都是针对 gw0 执行的,我没有得到任何并行性。

我想知道是否有任何我遗漏的调整或者这个功能目前没有实现。

4

0 回答 0