今天初次使用parameter进行pytest的参数化测试用例执行,以为parameter内部的参数列表可以是任何值,但是后来发现我错了,parameter修饰的参数,其中的列表必须在执行前就完全定义好,不能使用其他用例执行后更新的内容
因为pytest用例执行前还必须有一个用例执行数量收集的过程
类似于这个命令执行后,收集到的用例数量:
pytest test_backends.py --collect-only
如果parameter中定义的列表没有被统计到,则表示你参数没有成功,用例将直接被跳过,一次都不会执行。命令执行的结果如下:
然后我就想到了一个临时的办法,不把全局变量golble_taskIds当做parameter修饰的参数,而是另外把parameter的list定义为count,直接使用把count当做全局变量的游标,就解决了问题,代码结构如下:
然后再执行 pytest test_backends.py --collect-only,统计出来的用例数量就变化了
在这里插入图片描述