pytest基本应用(二)

一.在测试过程中,经常需要测试是否如期抛出预期的异常,以确定异常处理模块生效。

在 pytest 中使用 pytest.raises() 进行异常捕获

# 异常捕获
def test_zero_division_1():
    with pytest.raises(ZeroDivisionError):
        1 / 0

# 可以捕获异常信息
def test_zero_division_2():
    with pytest.raises(ZeroDivisionError) as e:
        1 / 0
        assert str(e.value) == 'integer division or modulo by zero'

 

二.标记测试函数

1.显式指定函数名,通过::标记

2.使用模糊匹配,使用-k标识

3.使用pytest.mark在函数上标记,运行时使用pytest -m 

三、跳过测试

# test_skip.py

@pytest.mark.skip(reason='out-of-date api')
def test_connect():
    pass

Pytest 还支持使用 pytest.mark.skipif 为测试函数指定被忽略的条件。

@pytest.mark.skipif(conn.__version__ < '0.2.0',
                    reason='not supported until v0.2.0')
def test_api():
    pass

四、参数化

当对一个测试函数进行测试时,通常会给函数传递多组参数。参数化测试即每组参数都独立执行一次测试,在pytest中可以使用pytest.mark.parametrize(argnames, argvalues)实现。

# 测试密码长度
@pytest.mark.parametrize('passwd',
                      ['123456',
                       'abcdefdfs',
                       'as52345fasdf4'])
def test_passwd_length(passwd):
    assert len(passwd) >= 8

# 多参数测试,校验用户密码
@pytest.mark.parametrize('user, pass
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值