gpt4 book ai didi

python - 使用 py.test xdist 控制测试的分布

转载 作者:太空宇宙 更新时间:2023-11-04 06:32:23 24 4
gpt4 key购买 nike

我有几千个测试要并行运行。测试都是编译后的二进制文件,返回代码为 0 或非零(失败时)。它们的一些未知子集尝试使用相同的资源(文件、端口等)。每个测试都假定它是独立运行的,并且只在资源不可用时报告失败。

我正在使用 Python 使用子进程模块启动每个测试,并且连续运行效果很好。我研究了 Nose 的并行化,但我需要自动生成测试(将 1000 多个二进制文件中的每一个都包装到使用子进程的 Python 类中)并且 Nose 的多处理模块不支持并行化自动生成的测试。

我最终选择了 PyTest,因为它可以使用 xdist 插件通过 SSH 在远程主机上运行自动生成的测试。

但是,据我所知,xdist 似乎不支持对测试分发方式进行任何类型的控制。我想给它一个 N 台机器的池,并在每台机器上运行一个测试。

PyTest/xdist 可以实现我想要的吗?如果没有,是否有一种工具可以满足我的需求?

最佳答案

我不确定这是否有帮助。但是如果你提前知道你想如何划分你的测试,而不是让 pytest 分发你的测试,你可以使用你的持续集成服务器为每台不同的机器调用不同的 pytest 运行。使用 -k 或 -m 选择测试的子集,或者简单地指定不同的测试目录路径,您可以控制哪些测试一起运行。

关于python - 使用 py.test xdist 控制测试的分布,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15260422/

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