有一个 Device 对象,我只想在这个测试类中实例化一次,并且让测试类里面的每个测试方法都能使用
我的 conftest.py 是这样的
然后我将这个方法在 setup_class 中使用,想存为变量,在测试方法中打印出来
抛出了异常
很疑惑为什么不能在 setup_class 不能使用
但是我在测试方法上使用则没问题
控制台输出正常
请问假如想要这样实现应该以什么样的方式文章源自玩技e族-https://www.playezu.com/214876.html软件测试工程师文章源自玩技e族-https://www.playezu.com/214876.html文章源自玩技e族-https://www.playezu.com/214876.html
未知地区 1F
conftest.py 使用 yield 关键字,不是 returnyield 不香么?简单说就是并不是所有的方法都能使用 fixture 作为参数。
具体的作用域 pytest 源码里的注释里有写,可以参考。
另外为什么还要有 setup_class 呢,都用 fixture 不就没这问题了。
类似 setup_class 这样的前后置不允许传参,用例层调用 driver
def test_008(self, connectDevice):
pass没懂 你在 fixture 中加个 autouse=True,就可以在每个 test_case 里直接调 get_device_object 了啊,每个 class 只执行了一次 fixture,这样返回的实例其实都是同一个的感谢各位大佬的指导,发现 fixture 推崇的是 不使用 setup 和 teardown 等方法,
问题已经解决
还有一个疑惑,网上找了半天没有找到答案
假如 fixture 使用了 yield 关键字,返回了一个 Device 对象
在用例中调用 fixture 方法
但是这个返回值是有类型的 ()
得到了返回值却点不了方法(没有提示 )怎么样才能出提示
你可以在你获取返回值的地方显示的标注它的类型