pytest入門到放棄10--parametrize之indirect引數
阿新 • • 發佈:2020-08-20
本篇部落格比較下 parametrize 中 引數為 True 和 False 時,不同 的表現。
# File : test_demo_11.py # IDE : PyCharm import pytest @pytest.fixture(params=['a', 'b', 'c']) def fixture_and_paramterize(request): print('\n執行引數{}'.format(request.param)) return request.param # indirect=False @pytest.mark.parametrize('fixture_and_paramterize', ['d', 'e', 'f'], indirect=False) def test_fixture_and_paramterize(fixture_and_paramterize): print('indirect=False,引數為{}'.format(fixture_and_paramterize)) # indirect=False @pytest.mark.parametrize('fixture_and_paramterize', ['d', 'e', 'f'], indirect=True) def test_fixture_and_paramterize_2(fixture_and_paramterize): print('indirect=True,引數為{}'.format(fixture_and_paramterize))
執行程式碼:
當 indirect=True 時,argnames 引數被當成函式執行,且 argvalues 值被當成函式中的引數傳參。
當 indirect=True 時,argnames 引數被當成普通變數
E:\personal\python38\python.exe E:/personal/GitWorkSpace/pytest_basic/main.py test_demo_11.py::test_fixture_and_paramterize[d] test_demo_11.py::test_fixture_and_paramterize[e] test_demo_11.py::test_fixture_and_paramterize[f] test_demo_11.py::test_fixture_and_paramterize_2[d] test_demo_11.py::test_fixture_and_paramterize_2[e] test_demo_11.py::test_fixture_and_paramterize_2[f] indirect=False,引數為d .indirect=False,引數為e .indirect=False,引數為f . 執行fixture函式,執行後引數為d indirect=True,引數為d . 執行fixture函式,執行後引數為e indirect=True,引數為e . 執行fixture函式,執行後引數為f indirect=True,引數為f . 6 passed in 0.03s Process finished with exit code 0