我有一些复杂且繁重的逻辑来构建测试对象,并且测试运行时间很长。它们是集成测试,我想尝试对其进行并行化。所以我找到了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执行的,并且我没有任何并行性。
我想知道是否有任何调整遗漏,或者此功能当前未实现。