我试图在几个相同的设备上并行硬件测试,每个设备都有自己的COM端口。理想情况下,我希望每个pytest-xdist工作者知道它可以访问哪个端口,从而知道它可以访问哪个设备,这样每个进程只会在单个端口上执行自己的测试份额,而这个端口在整个测试套件的执行过程中不会改变。我还没有实现这个的想法。
r7s23pms1#
我采用的解决方案是利用conftest.py可以用来覆盖pytest中的fixture这一事实以及一些元编程:创建一个包含设备定义(标签、comports等)的文件,然后为每个设备创建一个子文件夹,并将测试套件复制到其中。在conftest.py每个设备目录的顶层创建主www.example.com的副本,使用元编程替换conftest.py中的fixture使用设备参数所需的变量。将一个__init__.py添加到设备测试套件的顶层,将其转换为一个包,并将fixture的范围限定为“包”级别。最后,将xdist标记添加到您的测试中,并将group设置为您设备的唯一标签。希望这对任何可能遇到类似问题的人有所帮助。
__init__.py
group
1条答案
按热度按时间r7s23pms1#
我采用的解决方案是利用conftest.py可以用来覆盖pytest中的fixture这一事实以及一些元编程:
创建一个包含设备定义(标签、comports等)的文件,然后为每个设备创建一个子文件夹,并将测试套件复制到其中。
在conftest.py每个设备目录的顶层创建主www.example.com的副本,使用元编程替换conftest.py中的fixture使用设备参数所需的变量。
将一个
__init__.py
添加到设备测试套件的顶层,将其转换为一个包,并将fixture的范围限定为“包”级别。最后,将xdist标记添加到您的测试中,并将
group
设置为您设备的唯一标签。希望这对任何可能遇到类似问题的人有所帮助。