python-3.x 在pytest-xdist中将COM端口号传递给工作进程

fnatzsnv  于 2023-03-20  发布在  Python
关注(0)|答案(1)|浏览(122)

我试图在几个相同的设备上并行硬件测试,每个设备都有自己的COM端口。理想情况下,我希望每个pytest-xdist工作者知道它可以访问哪个端口,从而知道它可以访问哪个设备,这样每个进程只会在单个端口上执行自己的测试份额,而这个端口在整个测试套件的执行过程中不会改变。我还没有实现这个的想法。

r7s23pms

r7s23pms1#

我采用的解决方案是利用conftest.py可以用来覆盖pytest中的fixture这一事实以及一些元编程:
创建一个包含设备定义(标签、comports等)的文件,然后为每个设备创建一个子文件夹,并将测试套件复制到其中。
在conftest.py每个设备目录的顶层创建主www.example.com的副本,使用元编程替换conftest.py中的fixture使用设备参数所需的变量。
将一个__init__.py添加到设备测试套件的顶层,将其转换为一个包,并将fixture的范围限定为“包”级别。
最后,将xdist标记添加到您的测试中,并将group设置为您设备的唯一标签。
希望这对任何可能遇到类似问题的人有所帮助。

相关问题