目录
在测试中我们会碰到测试流程相同,但是数据不同,从而实现不同的测试覆盖。而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
==============