pytest fixture 用于setup工作

发布时间:2022-06-25 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了pytest fixture 用于setup工作脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

什么是fixture

fixture是在测试函数运行前后,由pytest执行的外壳函数;代码可以定制,满足多变的测试需求;包括定义传入测试中的数据集,配置测试前系统的初始状态,为批量测试提供数据等。fixture是pytest用于将测试前后进行预备,清理工作的代码分离出核心测试逻辑的一种机制!

举个例子

pytest fixture 用于setup工作

输出:

pytest fixture 用于setup工作

 #@pytest.fixture() 装饰器用于声明函数是一个fixture如果测试函数的参数列表中包含fixture名字,那么pytest会检测到,检测顺序是:优先搜索该测试所在的模块,然后搜索conftest.py并在测试函数运行之前执行该fixture,fixture可以完成测试任务,也可以返回数据给测试函数

fixture函数放在哪里合适

1.可以放在单独的测试文件里

2.如果希望多个测试文件共享fixture,可以放在某个公共目录下新建一个conftest文件,将fixture放在里面

fixture作用范围

fixture里面有个scoPE参数可以控制fixture的作用范围:session > module > class > function

1、scope="function"

@pytest.fixture()如果不写参数,参数就是scope="function",它的作用范围是每个测试用例来之前运行一次,销毁代码在测试用例之后运行。可以用在函数和方法中。

a、放函数中使用

pytest fixture 用于setup工作

 输出:

pytest fixture 用于setup工作

 b、放类的方法中使用

pytest fixture 用于setup工作

pytest fixture 用于setup工作

 输出:

pytest fixture 用于setup工作

2scope="class"

fixture为class级别的时候,如果一个class里面有多个用例,都调用了次fixture,那么此fixture只在此class里所有用例开始前执行一次。

pytest fixture 用于setup工作

 输出:

pytest fixture 用于setup工作

3scope="session"

fixture为session级别的时候,可以被多个文件调用,可以跨.py文件调用。

比如我们的登陆功能,一般只需要登陆一次,那么我们在每个测试类中其实只需要调用一次即可。

使用步骤:

1、定义conftest 文件

2、定义fixture 函数

3、标识被使用的范围(function、class、session)

conftest.py配置需要注意以下点:

  • conftest.py配置脚本名称是固定的,不能改名称
  • conftest.py与运行的用例要在同一个pakage下,并且有__inIT__.py文件
  • 不需要import导入 conftest.py,pytest用例会自动查找

举个例子

pytest fixture 用于setup工作

 

 模块一文件中使用:

pytest fixture 用于setup工作

 模块二文件中使用:

pytest fixture 用于setup工作

   查看输出:

pytest fixture 用于setup工作

 使用装饰器@pytest.mark.usefixtures()修饰需要运行的用例

举个例子

pytest fixture 用于setup工作

 输出:

pytest fixture 用于setup工作

 说明:

class 级别如果在class中使用,只在第一个用例执行之前执行一次;其他用例执行之前不会执行.

function 级别如果在class 中使用,每个用例执行前都执行一次

 

脚本宝典总结

以上是脚本宝典为你收集整理的pytest fixture 用于setup工作全部内容,希望文章能够帮你解决pytest fixture 用于setup工作所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。