八、浅谈 fixture 的参数化

1. fixture 参数化方式:

  (1)使用 fixture 的 params 方式实现参数化,固件对象传入的参数名固定是 request,且必须返回参数对象 request.param。

  (2)使用 @pytest.mark.parametrize() 装饰测试用例

    parametrize 第一个参数表示参数名,可以是字符串类型,如果是多个参数使用逗号隔开:@pytest.mark.paramtrize("a, b, c", [[1, 1, 2], [2, 2, 4], [3, 3, 6]]")

    parametrize 第一个参数可以声明为一个列表,列表中每个元素是对应参数的名字以字符串的形式显示,第二个参数表示参数值,格式是一个二维列表,一维中的每个元素表示每组值,二维中的每个元素表示对应参数的值:@pytest.mark.paramtrize("["a", "b", "c"], [[1, 1, 2], [2, 2, 4], [3, 3, 6]]")

import pytest

class Cal(object):
def add(self, a, b):
return a + b


# 声明自定义测试固件并含有参数化数据
# 如果使用 params 方式实现参数化,那么fixture中传入的参数固定是 request,且必须返回 request.param
@pytest.fixture(scope='function', params=[[1, 2, 3], [2, 2, 4]])
def get_cal(request):
return Cal(), request.param


def test_case_1(get_cal):
print(get_cal)
assert get_cal[0].add(get_cal[1][0], get_cal[1][1]) == get_cal[1][2]


posted @   努力的小测试  阅读(20)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示