gpt4 book ai didi

python - PyTest - 将每个测试作为 Mutlitprocessing 进程运行

转载 作者:太空宇宙 更新时间:2023-11-03 14:19:16 27 4
gpt4 key购买 nike

我正在使用 pytest 来运行我的测试,并测试我的网络应用程序。我的测试文件看起来像

def test_logins():
# do stuff

def test_signups():
# do stuff

def testing_posting():
# do stuff

大约有20个,其中很多都有运行在恒定时间或依赖外部HTTP请求的元素,所以如果我能让pytest启动的话,似乎会导致测试速度的大幅提升20 个不同的 mutliprocessing 进程(每个测试一个)来运行每个测试功能。这可能/合理/推荐吗?

我调查了 xdist但是拆分测试以便它们根据我计算机上的内核数量运行并不是我想要的。

此外,如果它是相关的,大部分测试都是使用 python 的请求库完成的(尽管它们最终将移至 selenium)

最佳答案

我仍然会推荐使用 pytest-xdist。而且,正如您已经提到的,因为您的测试主要进行网络 IO,所以可以使用比您拥有的内核(例如 20 个)更多的并行进程启动 pytest,这仍然是有益的,因为 GIL 不会阻止加速并行化。

所以你像这样运行它:

py.test tests -n<number>

xdist 的额外好处是您可以轻松地将测试运行扩展到多台机器。为了更轻松地在多台机器之间进行扩展,pytest-cloud 可以提供很多帮助。

关于python - PyTest - 将每个测试作为 Mutlitprocessing 进程运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29958823/

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