pytest--编写以及管理测试用例

本文介绍了如何使用pytest框架来编写和管理测试用例。测试文件通常存放在tests目录下,包括conftest文件夹和pytest配置文件。文章详细讲解了assert断言的使用,以及如何通过marker进行测试用例的分组和跳过。此外,还讨论了参数化测试用例的方法,并给出了运行测试子集的不同选项,如按目录、文件、函数、类和方法运行测试。
摘要由CSDN通过智能技术生成

测试文件目录

测试案例要和源码分开,单独放在一个tests文件夹里
tests文件夹位于项目根目录
在这里插入图片描述
一般测试用例的目录这样
conftest包含hook函数和fixture
pytest.ini,保存pytest在该项目下的配置

assert

断言有两种:第一种,在assert 后面添加任何表达式
assert
第二种:异常类型的断言,with pytest.raise()

def test_div_one():
    with pytest.raises(ZeroDivisionError):
        result=my_div(1,0)

更进一步,如果想断言异常抛出的信息,可以使用value.args[0]来获取到异常信息

def test_div_two():
    with pytest.raises(ZeroDivisionError) as exceptInfo:
        my_div(1,0)
    excepted_msg=exceptInfo.value.args[0]
    assert excepted_msg=='division by zero'

管理测试用例

(1)通过使用marker(标记)对测试用例进行分组

比如选择一些测试用例作为冒烟测试,可以使用装饰器pytest.mark.smoke来标记这些测试用例
运行的时候,通过-m选项来指定运行那些标记
pytest -m “smoke”
表示运行标记为smoke的测试用例
-m后面也可以使用表达式,可以在标记之前添加 and or not等
比如 pytest -m “smoke and get” 运行标记为smoke和get的测试用例

(2)跳过测试用例

pytest内置了一些标记,skip,skipif xfail
skip和skipif允许跳过不希望运行的测试用例
只是简单的跳过某个测试用例,使用pytest.mark.skip(reason=" xxxx")
如果要根据某个条件来判断是否跳过用例,使用pytest.mark.skipif(condition,reason), condition是条件,当条件是true时,跳过该测试用例,reason是原因

参数化测试用例

如果使用多组数据来测试同一个测试用例,可以使用@pytest.mark.parametrize(argnames,argvalues)装饰器达到批量传送参数的目的
第一个参数是str,List[str],Tuple[str]
第二个参数是一个值列表

@pytest.mark.parametrize("a",[1,5,7])
def test_parmetrized(a):
    print(a+</
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值