python pytest setupclass_python pytest进阶之fixture详解

前言

学pytest就不得不说fixture,fixture是pytest的精髓所在,就像unittest中的setup和teardown一样,如果不学fixture那么使用pytest和使用unittest是没什么区别的(个人理解)。

fixture用途

1.做测试前后的初始化设置,如测试数据准备,链接数据库,打开浏览器等这些操作都可以使用fixture来实现

2.测试用例的前置条件可以使用fixture实现

3.支持经典的xunit fixture ,像unittest使用的setup和teardown

4.fixture可以实现unittest不能实现的功能,比如unittest中的测试用例和测试用例之间是无法传递参数和数据的,但是fixture却可以解决这个问题

fixture定义

fixture通过@pytest.fixture()装饰器装饰一个函数,那么这个函数就是一个fixture,看个实例

# test_fixture.py

import pytest

@pytest.fixture()

def fixtureFunc():

return 'fixtureFunc'

def test_fixture(fixtureFunc):

print('我调用了{}'.format(fixtureFunc))

if __name__=='__main__':

pytest.main(['-v', 'test_fixture.py'])

执行结果

test_fixture.py .我调用了fixtureFunc

[100%]

========================== 1 passed in 0.02 seconds ===========================

Process finished with exit code 0

fixtureFunc 这个函数就是一个fixture,fixture函数内部可以实现一些初始化操作!

fixture使用

调用fixture有三种方式

方式1

fixture的名字直接作为测试用例的参数,上面的实例就这这种方式,再来看一个实例

# test_fixture.py

import pytest

@pytest.fixture()

def fixtureFunc():

return 'fixtureFunc'

def test_fixture(fixtureFunc):

print('我调用了{}'.format(fixtureFunc))

class TestFixture(object):

def test_fixture_class(self, fixtureFunc):

print('在类中使用fixture "{}"'.format(fixtureFunc))

if __name__=='__main__':

pytest.main(['-v&#

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值