python pytest使用_pytest使用详解

pytest:帮助你写出更好的程序:

开源,免费。

升级pytest,严格的向后兼容性。

丰富的第三方插件。

内置assert断言

基础用法

deftest_due():

x="why"

assert ‘w‘ in x

常用断言:pytest里面的断言实际上就是python里面assert的断言方法,常用以下几种:

·assert xx  判断xx为真

·assert not xx 判断xx不为真

·assert a in b 判断b包含a

·assert a == b 判断a等于b

·assert a != b 判断a不等于b

异常信息提示:如果想在异常的时候输出一些提示信息,这样报错后就方便查看是什么原因了

defadd(a,b):return a+bdeftest_assert():assert 6 == add(3,4),"方法返回的值不等于6,而是等于{0}".format(add(3,4))

20181203174123500291.png

异常信息的断言

我们要断言它抛的异常是不是预期的,比如执行:1/0,预期结果是抛异常:ZeroDivisionError: division by zero,那我们要断言这个异常。通常是断言异常的type和value的值。这里1/0的异常类型是ZeroDivisionError,异常的value值是"integer division or modulo by zero",于是以下是代码的设计用例

importpytestdeftest_zero_division():

with pytest.raises(ZeroDivisionError,message="Exceptions ZeroDivisionError") as exinfo:1/0assert exinfo.type ==ZeroDivisionErrorassert str(exinfo.value) == "integer division or modulo by zero","{0}".format(exinfo.value)

message:如果失败,显示失败的原因

deftest_zero_division():

with pytest.raises(ZeroDivisionError,message=‘0不能被除‘)as exec:pass

fixture可以声明function,module,fixture。也可以使用xunit的fixture的格式,setup和teardown。使用fixtures作为function的参数使用。

小编最常用识货大概就是关联测试接口时候,比如保单的查询,前提条件必须要生成一个新的保单再去查询

@pytest.fixture()defbefore():print ‘\nbefore each test‘

deftest_1(before):print ‘test_1()‘

deftest_2(before):print ‘test_2()‘

assert 0

执行结果:test_1、test_2执行前都要执行before,可以做关联接口测试使用

test_fixture_basic.py::test_1

before each test

test_1()

PASSED

test_fixture_basic.py::test_2

before each test

test_2()

FAILED

scope控制fixtrue调用的频率,默认是function。可选的有:

function:每个测试函数之前执行一次

class:每个测试类之前执行一次

module:每个module之前执行一次

session:每次session之前执行一次,即每次测试执行一次

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值