目录
在测试中我们会碰到测试流程相同,但是数据不同,从而实现不同的测试覆盖。而pytest中一个测试用例一般是用一套数据,而要实现不同数据运行相同的测试流程实现测试覆盖的目的,就要用到参数化了。
1、测试用例参数化
先看代码和运行结果
代码
from BaseLog import logger
import pytest
@pytest.mark.parametrize('data',("data1.1","data1.2","data1.3"))
def test_case1(data):
#测试函数
Expected = 2
Actual = 2
print("我是test_case1,传入参数:",data)
assert Expected == Actual
if __name__ =="__main__":
# -s:显示用例中的输出
# -v:输出更详细的用例执行信息
# __file__:本文件
pytest.main(["-vs","BASE/file_test.py"])
运行结果
[Running] python -u "d:\Test\Android_Test\BASE\file_test.py"
============================= test session starts =============================
platform win32 -- Python 3.10.9, pytest-7.2.1, pluggy-1.0.0 -- D:\Python310\python.exe
cachedir: .pytest_cache
rootdir: d:\Test\Android_Test
plugins: rerunfailures-11.1.1, xdist-3.2.0
collecting ... collected 3 items
BASE/file_test.py::test_case1[data1.1] 我是test_case1,传入参数: data1.1
PASSED
BASE/file_test.py::test_case1[data1.2] 我是test_case1,传入参数: data1.2
PASSED
BASE/file_test.py::test_case1[data1.3] 我是test_case1,传入参数: data1.3
PASSED
======================== 3 passedin 0.04s ===============

本文详细介绍了Pytest的参数化测试用例,包括测试用例参数化、测试类参数化以及如何给参数设置别名。通过示例代码演示了如何通过装饰器@unittest.mark.parametrize实现测试流程相同但数据不同的场景,使测试覆盖更全面。
最低0.47元/天 解锁文章
495

被折叠的 条评论
为什么被折叠?



