之前一直用的unittest,最近看pytest也挺火的,就试着玩玩
今天来说下pytest参数化的使用方法
举个 a+b很简单的例子来说我们在测试过程中,同一个用例,可能有多组入参,如果每个入参写一个用例就会显得有些繁琐
1、如何简化上边的用例,可以利用参数化的方法
@pytest.mark.parametrize
2、一定要注意:@pytest.mark.parametrize必须写在用例的上方
3、参数格式说明
parametrize后边紧跟元组格式参数,元组里边的参数可以是任意形式,比如上图入参是在一个列表中放N个列表,其实列表中放元组也是可以的
如下所有参数放在一个元组中,也是可以执行成功的
脚本如下:
import pytest
def add(a, b):
print(a, a+b)
return a+b
# test_add(2, 3, 6)
# test_add(2, 3, 5)
# test_add(1, 4, 55)
# @pytest.mark.parametrize('a, b, exp', [
# [2, 3, 6],
# [2, 3, 5],
# [1, 4, 55]
#
# ])
@pytest.mark.parametrize('a, b, exp', (
(2, 3, 6),
(2, 3, 5),
(1, 4, 55))
)
def test_add(a, b, exp):
assert add(a, b) == exp
if __name__ == '__main__':
pytest.main(["-s", "-v", "test_add.py"])