我有一个需要运行多个后端的测试套件。它不是一个简单的参数化测试,因为它适用于整个套件(多个文件/模块)。我可以通过环境来控制运行,但我想知道py.test是否有更明确的方式来表达它。
也就是说,我正在寻找类似的东西:
py.test --set-mode ALPHA
然后在我的测试中我会读到这个值:
if py.test.mode == 'ALPHA':
答案 0 :(得分:6)
<强> test_blah.py 强>
def test_something(mode):
if mode == 'ALPHA':
assert True
else:
assert False
<强> conftest.py 强>
import pytest
def pytest_addoption(parser):
parser.addoption("--set-mode", action="store", default="ALPHA",
help="ALPHA or BETA")
@pytest.fixture
def mode(request):
return request.config.getoption("--set-mode")
请参阅Pass different values to a test function, depending on command line options。