在一组测试用例有固定的的测试数据,可以通过参数化的方式简化测试用例的编写。pytest本身支持参数化,不需要额外安装插件。创建test_parameterize.py文件:
1 import pytest 2 import math 3 # pytest参数化 4 5 @pytest.mark.parametrize( 6 "base, exponent, expected", 7 [(2, 2, 4), 8 (2, 3, 8), 9 (1, 9, 1), 10 (0, 9, 0)], 11 ids=["case1", "case2", "case3", "case4"] 12 ) 13 def test_pow(base, exponent, expected): 14 assert math.pow(base, exponent) == expected
用法与unittest的参数化插件类似,通过pytest.mark.parameterize()方法设置参数。
"base,exponent,expected"用来定义参数的名称。通过数组定义参数时,每一个元组都是一条测试用例的测试数据。ids默认为None,用于定义测试用例的名称。
“-v”参数增加测试用例冗长。
原文:https://www.cnblogs.com/pegawayatstudying/p/12421665.html