Pytest单元测试框架如何实现参数化
本文介绍Pytest框架中pytest.mark.parametrize装饰器的使用方法。通过示例演示如何传入单个参数及多个参数,说明argnames与argvalues的定义规则,以及元组对应关系。适用于希望提升测试效率的Python开发者参考。
Pytest参数化基础
在Pytest单元测试框架中,实现参数化测试主要依赖特定的装饰器。
核心语法为pytest.mark.parametrize(argnames,argvalues)。
其中,argnames用于指定测试函数的参数名称。
argvalues用于提供参数对应的具体值,其类型必须为可迭代对象,通常使用列表(list)形式。
单个参数传递示例
import pytest
class Test01():
@pytest.mark.parametrize("school",["深圳多测师","广州多测师","上海多测师"])
def test_dcs(self,school):
print(school)
if __name__ == '__main__':
pytest.main(["-s","test_demo1.py"])
# 结果如下
test_demo1.py
深圳多测师.
广州多测师.
上海多测师.
多个参数传递示例
当需要传入多个参数时,语法结构略有不同。
写法为pytest.mark.parametrize((arg1,arg2),[(argvalue1,argvalue2),(argvalue3,argvalue4)])。
在此结构中,列表内的每个元素均为一个元组,元组内部的元素依次与定义的多参数一一对应。
多参数代码实现
import pytest
class Test01():
@pytest.mark.parametrize(("school","schoolmaster"),
[("深圳多测师","Mr.Chen"),
("上海多测师","Mr.Xie"),
("广州多测师","Mr.Fu")])
def test_dcs(self, school, schoolmaster):
print("{}校区的校长是{}".format(school,schoolmaster))
if __name__ == '__main__':
pytest.main(["-s","test_demo1.py"])
# 结果如下
test_demo1.py
深圳多测师校区的校长是Mr.Chen.
上海多测师校区的校长是Mr.Xie.
广州多测师校区的校长是Mr.Fu.
以上即为Pytest参数化的主要内容,希望对相关学习有所帮助。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













