Pytest装饰器@pytest.mark.parametrize使用

Pytest装饰器@pytest.mark.parametrize使用

参数解释

  • @pytest.mark.parametrize(‘参数名’,list&tuple)可以实现测试用例参数化
  1. 第一个参数是字符串,多个参数中间用逗号隔开
  2. 第二个参数是list&tuple,多组数据用元祖类型;传三个或更多参数也是这样传。list的每个元素都是一个元组,元组里的每个元素和按参数顺序一一对应
    可查看参数解释:
    在这里插入图片描述

例子一个参数和三个参数(argvalues多组时自动遍历)

class TestStandardDataset01:
    @pytest.mark.parametrize(
        argnames="ag1",
        argvalues=[1])
    def test_dataset_1(self, ag1):
        print('一个参数打印')
        print(ag1)

    # 三个参数
    @pytest.mark.parametrize(
        argnames="ag1, ag2, ag3",
        argvalues=[(1, 2, 3),
                   (4, 5, 6)])
    def test_dataset_2(self, ag1, ag2, ag3):
        print('三个参数打印')
        print(ag1, ag2, ag3)

在这里插入图片描述

`@pytest.fixture`和`@pytest.mark.parametrize`是pytest中的两个常用装饰器,用于测试用例的编写和组织。 `@pytest.fixture`装饰器用于定义测试用例执行前需要进行的准备工作,也就是测试夹具(test fixture)。夹具可以是创建、配置或者初始化测试用例所需的对象、数据或环境等。通过夹具,我们可以确保在每个测试用例执行前都有一致的环境和数据状态。 举个例子,假设我们有一个测试用例需要访问数据库,那么可以使用`@pytest.fixture`装饰器来创建一个数据库连接夹具,在每个测试用例执行前都创建一个连接,在用例执行后关闭连接,以保证每个测试用例都有独立的数据库连接。 `@pytest.mark.parametrize`装饰器用于参数化测试用例。参数化是一种有效的测试用例设计方法,它允许我们通过给定不同的参数组合来运行相同的测试逻辑,从而减少代码重复并增加测试覆盖性。使用`@pytest.mark.parametrize`装饰器,我们可以将测试用例定义为一个参数化的函数,并指定不同的参数组合。 举个例子,假设我们有一个加法函数`add(a, b)`,可以使用`@pytest.mark.parametrize`装饰器来定义一个参数化测试用例,传入不同的参数组合来验证加法函数的正确性,例如测试用例可以是`(1, 2, 3)`、`(0, 0, 0)`、`(-1, 1, 0)`等。 总结来说,`@pytest.fixture`用于准备测试用例执行前的环境和数据,而`@pytest.mark.parametrize`用于参数化测试用例。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值