pytest测试框架(六) 参数化与数据驱动
参数化用例
- @pytest.mark.parametrize(argnames, argvalues)
- argnames: 要参数化的变量, string(逗号分隔), list, tuple
- argvalues: 参数化的值,list, list[tuple]
import pytest
class Test_ABC:
@pytest.mark.parametrize("test_input, expected", [("3+5", 8), ("2+4", 6)])
def test_abc(self, test_input, expected):
print(test_input, expected)
if __name__ == '__main__':
pytest.main(["-s", "test_abc.py"])
运行结果:
test_abc.py 3+5 8
.2+4 6
.
数据驱动
- 使用pytest和yaml文件相结合,pyyaml模块来处理yaml格式数据,主要使用 yaml.safe_dump() 和 yaml.safe_load() 函数将python对象和yaml格式数据相互转化
- 安装:pip install PyYAML
- 案例:
-
- 创建data.yml文件:
- - 1
- 2
- - 20
- 30
创建test_abc.py
import pytest
import yaml
class Test_ABC:
@pytest.mark.parametrize("a, b", yaml.safe_load(open("data.yml")))
def test_abc(self, a, b):
print(f"a + b = {a + b}")
if __name__ == '__main__':
pytest.main(["-s", "test_abc.py"])
运行结果:
test_abc.py a + b = 3
.a + b = 50
.
本文来自博客园,作者:小小滴人a,转载请注明原文链接:https://www.cnblogs.com/xxiaow/p/16673816.html
任何人的成功都无法一蹴而就,每一阶段的抵达,都离不开一步一个脚印的积累。只要不急不躁,耐心努力,保持对新事物的好奇,就是行进在成为更好自己的路上。慢慢来,别着急,生活终将为你备好所有的答案。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下