py.test 在哪里以及如何查找固定装置?我在同一个文件夹中的 2 个文件中有相同的代码。当我删除 conftest.py 时,找不到运行 test_conf.py 的 cmdopt(也在同一个文件夹中。为什么没有搜索到 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
- 由于 test_ 前缀,pytest 找到了 test_ehlo。测试函数需要一个名为 smtp 的函数参数。通过查找名为 smtp 的带有夹具标记的函数来发现匹配的夹具函数。
- smtp() 被调用来创建一个实例。
- test_ehlo() 在测试函数的最后一行被调用并失败。