pytest中fixture的使用方法

目录

一、pytest中的fixture是什么

二、pytest中fixture的使用

1.fixture 可以作为一个函数的参数被调用

2.fixture可以在一个类、或者一个模块、或者整个session中被共享,加上范围即可

3.fixture也可以单独存放

4.同一个模块里出现多个范围的装饰

5.fixture的如何实现teardown

6.fixture中的参数 autouse

总结:


一、pytest中的fixture是什么

为可靠的和可重复执行的测试提供固定的基线(可以理解为测试的固定配置,使不同范围的测试都能够获得统一的配置),fixture提供了区别于传统单元测试(setup/teardown)风格的令人惊喜的功能,而且pytest做得更炫。

二、pytest中fixture的使用

1.fixture 可以作为一个函数的参数被调用


如上图, 这里的 test_ehlo函数,需要参数值smtp_connection,pytest就是找到并且调用这个用@pytest.fixture装饰的smtp_connection函数。
换句话讲,被装饰器装饰的函数或者方法,仍然可以被调用。步骤是这样的:

  • pytest 找到test_ 开头的函数,于是找到了test_ehlo
  • test_ehlo这个测试函数,需要一个参数smtp_connection,于是函数smtp_connection被找到
  • smtp_connection被调用来创建一个实例
2.fixture可以在一个类、或者一个模块、或者整个session中被共享,加上范围即可


如上图,加入scope=“module”的参数,可以让fixture function在每次模块测试的时候只请求一次。这样不同的test function在同一个test module中接收到的 smtpfixture参数都是一样的。这里的smtp_connection,就可以在这个模块中,共享使用。类似的:
如果想在一个类中使用,那么@pytest.fixture(scope="class");
如果想在全部会话中使用,那么@pytest.fixture(scope="session")。

3.fixture也可以单独存放

有的时候为了方便配置和访问,也可以将这样的fixture放到conftest.py文件中单独存放(注意ÿ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值