pytest_addoption : 命令列引數
阿新 • • 發佈:2021-09-14
場景
1.一般公司測試環境都有多套,測試的時候我們需要在不同的環境下進行
2.在自動化執行時,在不同的環境下我們要指定不同的系統配置,每次修改框架程式碼配置這個很不自動化
3.pytest_addoption註冊引數 這個就很好的解決了這個問題,它能在執行命令的時候傳遞引數
基本用法
#conftest.py # 註冊自定義引數num到配置物件 def pytest_addoption(parser): parser.addoption( "--num_1", action="store", default='0', help="my option: 說明" ) parser.addoption( "--num_2", action="store", default='0', help="my option: 說明" ) # 從配置物件獲取值 @pytest.fixture(scope='session', autouse=True) def num_1(request): return request.config.getoption("--num_1") @pytest.fixture(scope='session', autouse=True) def num_2(request): return request.config.getoption("--num_2") #test_02.py def test_run(num_1, num_2): print(num_1) print(num_2) #不帶引數執行 test_02.py::test_run PASSED num_1: 0 num_2: 0 === 1 passed in 0.05s #帶引數執行:pytest -s -v test_02.py --num_1=11 --num_2=22 test_02.py::test_run num_1: 11 num_2: 22 PASSED === 1 passed in 0.06s
引數含義
name:自定義命令列引數的名字,可以是:"foo", "-foo" 或 "--foo";
action:在命令列中遇到此引數時要採取的基本操作型別;
nargs:應該使用的命令列引數的數量;
const:某些操作和nargs選擇所需的常量值;
default:如果引數不在命令列中,則生成的預設值。
type:命令列引數應該轉換為的型別;
choices:引數允許值的容器;
help:對引數作用的簡要說明;