【pytest】setup_class 上为什么不能使用 fixture

回首 测试交流1 187字数 181阅读模式

有一个 Device 对象,我只想在这个测试类中实例化一次,并且让测试类里面的每个测试方法都能使用

我的 conftest.py 是这样的

文章源自玩技e族-https://www.playezu.com/214876.html

然后我将这个方法在 setup_class 中使用,想存为变量,在测试方法中打印出来

文章源自玩技e族-https://www.playezu.com/214876.html

抛出了异常

文章源自玩技e族-https://www.playezu.com/214876.html

很疑惑为什么不能在 setup_class 不能使用
但是我在测试方法上使用则没问题

文章源自玩技e族-https://www.playezu.com/214876.html

控制台输出正常

文章源自玩技e族-https://www.playezu.com/214876.html

请问假如想要这样实现应该以什么样的方式文章源自玩技e族-https://www.playezu.com/214876.html软件测试工程师文章源自玩技e族-https://www.playezu.com/214876.html文章源自玩技e族-https://www.playezu.com/214876.html

玩技站长微信
添加好友自动发送入群邀请
weinxin
rainbow-shownow
玩技官方公众号
官方微信公众号
weinxin
PLAYEZU
 
  • 版权提示:本站仅供存储任何法律责任由作者承担▷诈骗举报◁▷新闻不符◁▷我要投稿◁
    风险通知:非原创文章均为网络投稿真实性无法判断,侵权联系2523030730
    免责声明:内容来自用户上传发布或新闻客户端自媒体,切勿!切勿!切勿!添加联系方式以免受骗。
  • 原创转载:https://www.playezu.com/214876.html
    转载说明: 点我前往阅读>>>
    • 木子健
      木子健 9

      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 方法

      但是这个返回值是有类型的 ()

      得到了返回值却点不了方法(没有提示 )怎么样才能出提示
      你可以在你获取返回值的地方显示的标注它的类型

    匿名

    发表评论

    匿名网友
    确定