本文的前提是你已经了解了 pytest 的 ‘fixture’ ,不熟悉的朋友可以移步 > 传送门
pytest 提供了强大的 fixture 功能,当 fixture 的 params 参数为 list 时,会执行 ‘list参数长度’ 次测试
import pytest
is_a = [1, 2, 3, 4, 5, 6, 11, 12]
@pytest.fixture(params=is_a)
def is_a(request):
print(request)
return request.param
def test_a(is_a):
assert is_a < 10
执行结果为:
(venv) admindeMBP:My_Function_Test admin$ pytest
========================================================================================================================== test session starts ==========================================================================================================================
platform darwin -- Python 3.7.2, pytest-4.4.1, py-1.8.0, pluggy-0.9.0
rootdir: /Users/admin/PycharmProjects/My_Function_Test
collected 8 items
tests/test_aa.py ......FF [100%]
=============================================================================================================================== FAILURES ================================================================================================================================
______________________________________________________________________________________________________________________________ test_a[11] _______________________________________________________________________________________________________________________________
is_a = 11
def test_a(is_a):
> assert is_a < 10
E assert 11 < 10
tests/test_aa.py:14: AssertionError
------------------------------------------------------------------------------------------------------------------------- Captured stdout setup -------------------------------------------------------------------------------------------------------------------------
<SubRequest 'is_a' for <Function test_a[11]>>
______________________________________________________________________________________________________________________________ test_a[12] _______________________________________________________________________________________________________________________________
is_a = 12
def test_a(is_a):
> assert is_a < 10
E assert 12 < 10
tests/test_aa.py:14: AssertionError
------------------------------------------------------------------------------------------------------------------------- Captured stdout setup -------------------------------------------------------------------------------------------------------------------------
<SubRequest 'is_a' for <Function test_a[12]>>
================================================================================================================== 2 failed, 6 passed in 0.24 seconds ===================================================================================================================
我们传入的 list 长度为 8
通过结果......FF
可以看到:
共执行了 8 次,因 11、12 大于 10 ,所以成功为 6 次,失败为 2 次