0
点赞
收藏
分享

微信扫一扫

pytest参数化出现错误:In test_parmaids: 4 parameter sets specified, with different number of ids: 3

8052cf60ff5c 2022-03-22 阅读 20
python

前言

在学习pytest的参数化过程中,遇到了一个问题,执行pytest命令时出现错误,In test_parmaids: 4 parameter sets specified, with different number of ids: 3

源代码

@pytest.fixture()
def login3(request):
    param = request.param
    print(f"login name:{param['username']},login pwd:{param['pwd']}")
    return {'code':0,'msg':'success'}

data3 = [
    {"username":"username1","pwd":"pwd1"},
    {"username":"username2","pwd":"pwd2"},
    {"username":"username3","pwd":"pwd3"},
    {"username":"username4","pwd":"pwd4"}
]

ids = [
    "登录的用户名是username1 密码是pwd1",
    "登录的用户名是username2 密码是pwd2",
    "登录的用户名是username3 密码是pwd3",
    "登录的用户名是username4 密码是pwd4"
]

@allure.story("登录功能3")
@pytest.mark.parametrize('login3',data3, ids = ids, indirect=True)
def test_parmaids(login3):
    '''
    登录功能 - 测试用例3
    '''
    assert login3['code'] == 0

错误原因

我的data中的测试数据是4条,但是在ids中的字符串只有三个,少写了一个,导致的这个错误。

写在最后

我在解决这个问题的时候,发现不同的代码错误都会导致这个error,所以这个错误原因大家可以参考一下。

举报

相关推荐

0 条评论