Python 有大佬讲解下 pytest 中的 fixture 如何实现的吗

乔治的恐龙 · 2020年01月17日 · 最后由 北海 回复于 2020年05月31日 · 2070 次阅读

我看源码,把自己整晕了。。

共收到 2 条回复 时间 点赞

最近也在用 pytest,官方 doc 看了很多地方也不是很清楚,最后自己一点点试出来的。
UI 端使用 appium+pytest 测试的内容很少,比如何时启动 appium,何时创建 driver session,还需要看你的需求,以及测试用例的文件结构。比如 app 有需要登陆的,是不是每个测试单元都需要登陆,如果是,需要将登陆的测试 re-order 到第一个执行,但是怎么 re-order test,这方面的内容都不是很多。

简单说下,如果你的测试用例是用 class,一个 class 下有不同的测试,但是都是一个 feature 里的,那么需要在 fixture 里设置 scope 为 class,并且在此 fixture method 里创建 driver, 以及启动 app,以及用 addfinalizer 添加 teardown

修改执行顺序是在 pytest_collection_modifyitems(session, config, items) 下,需要把 items 里的顺序调整。

先弄明白 conftest 的运行机制, conftest 是通过层级关系,一层一层往上找的需要的函数,而 fixture 就是对这个函数的一个标识,标记这个函数是可以被调用的状态,而其中 scope 是 fixture 的作用域,你可以是全局也可以是局部。

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册