来自带有夹具的命令行的 Pytest 参数
Pytest argument from command line with fixture
代码 : Test1.py
import pytest
@pytest.fixture(scope='session', autouse=True)
def tc_setup(start):
if start == "20d":
print('20d is sent')
else:
print('not in list')
def pytest_addoption(parser):
parser.addoption('--start')
@pytest.fixture(scope='session', autouse=True)
def start(request):
return request.config.getoption('--start')
从命令行
pytest -v test1.py --start=20d
也试过了,
pytest -v test1.py --start 20d
错误信息
ERROR: usage: pytest [options] [file_or_dir] [file_or_dir] [...]
pytest: error: unrecognized arguments: --start=20d
inifile: None
如何从命令行发送参数和pytest
。
我是 运行 来自 bash shell 的 linux ubuntu 终端。
版本
pytest 7.1.0
以下是它对我的作用。创建了两个文件:conftest.py
和 myso_test.py
。您基本上需要有一个 conftest 文件
conftest.py
import pytest
def pytest_addoption(parser):
parser.addoption("--start")
@pytest.fixture(scope='session', autouse=True)
def start(request):
return request.config.getoption("--start")
myso_test.py
import pytest
@pytest.fixture(scope='session', autouse=True)
def tc_setup(start):
if start == "20d":
print('20d is sent')
else:
print('not in list')
def test_var():
assert True
运行命令:
pytest myso_test.py -s -v --start="20d"
输出:
myso_test.py::test_var 20d is sent
PASSED
运行命令:
pytest myso_test.py -s -v --start="20dw"
输出:
myso_test.py::test_var not in list
PASSED
代码 : Test1.py
import pytest
@pytest.fixture(scope='session', autouse=True)
def tc_setup(start):
if start == "20d":
print('20d is sent')
else:
print('not in list')
def pytest_addoption(parser):
parser.addoption('--start')
@pytest.fixture(scope='session', autouse=True)
def start(request):
return request.config.getoption('--start')
从命令行
pytest -v test1.py --start=20d
也试过了,
pytest -v test1.py --start 20d
错误信息
ERROR: usage: pytest [options] [file_or_dir] [file_or_dir] [...]
pytest: error: unrecognized arguments: --start=20d
inifile: None
如何从命令行发送参数和pytest
。
我是 运行 来自 bash shell 的 linux ubuntu 终端。
版本
pytest 7.1.0
以下是它对我的作用。创建了两个文件:conftest.py
和 myso_test.py
。您基本上需要有一个 conftest 文件
conftest.py
import pytest
def pytest_addoption(parser):
parser.addoption("--start")
@pytest.fixture(scope='session', autouse=True)
def start(request):
return request.config.getoption("--start")
myso_test.py
import pytest
@pytest.fixture(scope='session', autouse=True)
def tc_setup(start):
if start == "20d":
print('20d is sent')
else:
print('not in list')
def test_var():
assert True
运行命令:
pytest myso_test.py -s -v --start="20d"
输出:
myso_test.py::test_var 20d is sent
PASSED
运行命令:
pytest myso_test.py -s -v --start="20dw"
输出:
myso_test.py::test_var not in list
PASSED