Где и как py.test ищет светильники? У меня такой же код в 2 файлах в одной папке. Когда я удаляю conftest.py, cmdopt не может быть найден под управлением test_conf.py(также в той же папке. Почему sonoftest.py не выполняется поиск?
# content of test_sample.py
def test_answer(cmdopt):
if cmdopt == "type1":
print ("first")
elif cmdopt == "type2":
print ("second")
assert 0 # to see what was printed
содержимое conftest.py
import pytest
def pytest_addoption(parser):
parser.addoption("--cmdopt", action="store", default="type1",
help="my option: type1 or type2")
@pytest.fixture
def cmdopt(request):
return request.config.getoption("--cmdopt")
содержание sonoftest.py
import pytest
def pytest_addoption(parser):
parser.addoption("--cmdopt", action="store", default="type1",
help="my option: type1 or type2")
@pytest.fixture
def cmdopt(request):
return request.config.getoption("--cmdopt")
Документы говорят
http://pytest.org/latest/fixture.html#fixture-function
- pytest находит test_ehlo из-за префикса test_. Для функции тестирования требуется аргумент функции с именем smtp. Соответствующее приспособление функция обнаруживается путем поиска функции, обозначенной ярлыком SMTP.
- smtp() вызывается для создания экземпляра.
- test_ehlo() вызывается и не работает в последней строке тестовой функции.