pytest-xdist 为每个测试生成随机且唯一的端口

pytest-xdist generate random & uniqe ports for each test

我正在使用 pytest-xdist 插件 运行 一些测试,使用 @pytest.mark.parametrize 到 运行 使用不同参数的相同测试。

作为这些测试的一部分,我需要 open/close 网络服务器,并且端口是在收集时生成的。

xdist 在slave 上做test collection,他们不同步,所以我如何保证端口生成的唯一性。

我可以为每个从站使用相同的端口,但我不知道如何存档。

我认为我没有提供有关我的问题的足够信息。

我所做的是使用 @pytest.mark.parametrize 创建一个参数化测试,在测试之前,我收集参数列表,收集查询 Web 服务器并接收 "jobs" 列表进行处理.

每个测试都包含有关他需要绑定到的端口的信息,做一些工作并退出,因为测试是 运行 并行的我需要确保端口不同。

最终,我确保作业 ID 将在 1024-65000 的范围内,并将其用于端口。