request.node
является объектом функции теста, поэтому request.node.get_marker('set1')
возвращает маркер, прикрепленный к выполняемому в данный момент тесту.Например, при запуске теста
@pytest.fixture
def basedriver(request):
node = request.node
print('Marker:', node.get_marker('set1'))
@pytest.mark.set1
def test_spam(basedriver):
assert True
def test_eggs(basedriver):
assert True
будет напечатано
test_spam.py::test_spam Marker: MarkInfo(_marks=[Mark(name='set1', args=(), kwargs={})])
PASSED
test_spam.py::test_eggs Marker: None
PASSED
То, что вам нужно, это переданное значение аргумента командной строки -m
.Доступ к нему через конфигурационное приспособление:
@pytest.fixture
def basedriver(pytestconfig):
markers_arg = pytestconfig.getoption('-m')
print('markers passed from command line:', markers_arg)
...