Where and how does py.test look for fixtures? I have the same code in 2 files in the same folder. When I delete conftest.py, cmdopt cannot be found running test_conf.py (also in same folder. Why is sonoftest.py not searched?
# 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
content of conftest.py
import pytestdef 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")
content of sonoftest.py
import pytestdef 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")
The docs say
http://pytest.org/latest/fixture.html#fixture-function
- pytest finds the test_ehlo because of the test_ prefix. The test function needs a function argument named smtp. A matching fixturefunction is discovered by looking for a fixture-marked function namedsmtp.
- smtp() is called to create an instance.
- test_ehlo() is called and fails in the last line of the test function.