gpt4 book ai didi

python - python-xdist 插件是否会导致 pytest_generate_tests 执行多次?

转载 作者:行者123 更新时间:2023-12-01 05:20:24 25 4
gpt4 key购买 nike

我有一个简单的测试。

def test_sample(str):
print str

并使用 pytest_generate_tests() 例如

def pytest_generate_tests(metafunc):
argnames = [str]
argvalues = [[Hello], [World]]
print "Entered pytest_generate_tests"
metafunc.parametrize(argnames, argvalues)

现在,如果我使用 python-xdist 并行运行测试。我看到 pytest_generate_tests() 被调用“n”次,具体取决于 cmdline 选项。

py.test -n 2 --> 打印“Entered pytest_generate_tests”两次。这是正确的行为吗?我期望只有测试会在单独的线程中执行。

环境: python 2.7py.测试2.5.2pytest-xdist 1.10

最佳答案

是的,这是正确的... pytest_generate_tests 是 py.test 在收集阶段使用的一个钩子(Hook),它依次由每个从站执行,以获得要执行的测试(“test项目”)。哪个从属设备执行哪个测试项目,然后由启动测试 session 的进程处理。

我还没有完全研究所有内部结构,但我认为原因之一是您无法将测试项从一个进程发送到另一个进程,因为它们不可序列化。因此,该方法是让每个从属设备自己进行收集,以获得测试项目及其“测试 ID”,然后可以在进程之间交换这些测试项目和“测试 ID”,作为通信手段,哪个从属设备应该执行每个测试并报告测试结果返回。

关于python - python-xdist 插件是否会导致 pytest_generate_tests 执行多次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22521308/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com