在 pytest
中,您可以通过多种方式自定义命令行选项。以下是一些常用的方法:
使用 pytest
的 addoption
方法
您可以在 conftest.py
文件中使用 pytest_addoption
钩子函数来添加自定义命令行选项。
下面是一个示例,展示如何添加一个名为 --my-option
的自定义命令行选项:
# conftest.py
def pytest_addoption(parser):
parser.addoption("--my-option", action="store", default="default_value",
help="My custom option")
然后在测试用例中,您可以通过 request.config.getoption
来获取这个选项的值:
# test_module.py
def test_my_option(request):
my_option_value = request.config.getoption("--my-option")
print(f"The value of my custom option is: {my_option_value}")
使用 pytest
的装饰器
如果您想要为特定的测试函数或测试类添加命令行选项,可以使用 pytest.mark.parametrize
装饰器。
# test_module.py
import pytest
@pytest.mark.parametrize("my_option", [pytest.config.getoption("--my-option")])
def test_with_option(my_option):
print(f"Running test with my_option: {my_option}")
使用 pytest
的 fixture
您也可以创建一个 fixture
来处理自定义选项,并在测试用例中注入这个 fixture
。
# conftest.py
import pytest
@pytest.fixture
def my_option(request):
return request.config.getoption("--my-option")
# test_module.py
def test_with_fixture(my_option):
print(f"Running test with my_option: {my_option}")
在这个例子中,my_option
是一个 fixture
,它会读取命令行选项的值,并将其传递给测试函数。
要使用自定义命令行选项,您只需在运行 pytest
时添加这个选项:
pytest --my-option your_value
确保您已经定义了 pytest_addoption
钩子,并且正确地使用了选项值,这样您的测试才能正确地接收和使用它。