pytest fixture学习

介绍

夹具是pytest的一个闪光点,pytest要精通怎么能不学习夹具呢?跟着我一起深入学习夹具吧。其实单元测试和鼻子都支持夹具,但是pytest做得更炫.fixture是pytest特有的功能,它用pytest.fixture标识,定义在函数前面。在你编写测试函数的时候,你可以将此函数名称做为传入参数,pytest将会以依赖注入方式,将该函数的返回值作为测试函数的传入参数夹具有明确的名字,在其他函数,模块,类或整个工程调用它时会被激活。调用其他的夹具。我们可以把夹具看做是资源,在你的测试用例执行之前需要去配置这些资源,执行完后需要去释放资源。比如模块类型的夹具,适合于那些许多测试用例都只需要执行一次的操作.fixture还提供了参数化功能,配置根据状语从句:不组件来选择不同的参数。夹具主要的目的是为了提供一种可靠和可重复性的手段去运行那些最基本的测 试内容。比如在测试网站的功能时,每个测试用例都要登录和退出,利用夹具就可以只做一次,否则每个测试用例都要做这两步也是冗余


调用夹具的三种方式

1.在测试例中直接调用它
例如:
导入pytest

@ pytest.fixture()
def before()之前:
在每次测试前打印'\ n'

def test_1(之前):
打印'TEST_1()'

def test_2(之前):
打印'test_2()'
断言0

用夹具装饰调用夹具
可以用以下三种不同的方式来写,我只变化了函数名字和类名字,内容没有变。第一种是每个函数前声明,第二种是封装在类里,类里的每个成员函数声明,第三种是封装在类里在前声明。在可以看到3中不同方式的运行结果都是一样.test_fixture_decorator.py
import pytest@pytest.fixture() def before(): print '\ n before each test' )@ pytest.mark.usefixtures( “before” def test_1(): print 'test_1()' )@ pytest。标记.usefixtures( 之前” DEF test_2(): 印刷 'test_2()' 的Test1:@ pytest.mark.usefixtures( 之前” 高清 test_3(个体经营): 打印 'TEST_1()' )@pytest .mark.usefixtures( “之前” def test_4(self): print 'test_2()' )@ pytest.mark.usefixtures( “before” class Test2: def test_5(self): print 'test_1()' def test_6(self): print ' test_2()'


3.用汽车调用夹具
夹具装饰一个可选的参数是autouse,默认设置为假。当默认设置为假时,就可以选择用上面两种方式来试用夹具。当设置为真时,在一个会话内的所有的测试都会自动调用这个夹具权限大,责任也大,所以用该功能时也要谨慎小心。

侧输入侧我 时间
导入pytest

@ pytest.fixture(范围='功能',autouse =真)
def mod_header():
打印('\ n测试类')

def test_one():
print('in test_one()')

def test_two():
print('in test_two()')

如果__name__ =='__ main__':
pytest.main(' - s fixture_4.py')


 夹具范围

函数:每个测试都运行,默认是函数的范围类:每个类的所有测试只运行一次模块:每个模块的所有测试只运行一次会话:每个会话只运行一次
比如你的所有测试都需要连接同一个数据库,那可以设置为模块,只需要连接一次数据库,对于模块内的所有测试中,这样可以极大的提高运行效率。


夹具返回值



  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值