Python pytest AttributeError:Metafunc实例没有属性';参数化';
我正在尝试使用pytest参数化我的测试。我修改了conftest.py文件,通过pytest_generate_tests钩子对夹具进行参数化,并添加了夹具本身:Python pytest AttributeError:Metafunc实例没有属性';参数化';,python,python-2.7,pytest,Python,Python 2.7,Pytest,我正在尝试使用pytest参数化我的测试。我修改了conftest.py文件,通过pytest_generate_tests钩子对夹具进行参数化,并添加了夹具本身: def pytest_generate_tests(metafunc): data = [] with open('/tmp/search_terms.csv') as search_terms: while True: term = search_terms.readline
def pytest_generate_tests(metafunc):
data = []
with open('/tmp/search_terms.csv') as search_terms:
while True:
term = search_terms.readline().rstrip()
if not term:
break
data.append(term)
if 'search_term' in metafunc.fixturenames:
metafunc.parameterize("search_term", data)
@pytest.fixture(scope="session")
def search_term(request):
return request.param
目前,我只希望测试打印出我的search_term.csv内容并通过:
def test_print_search_term(search_term):
print search_term
但是,我得到以下错误:
test_search_terms.py:None (test_search_terms.py)
conftest.py:34: in pytest_generate_tests
metafunc.parameterize("search_term", data)
E AttributeError: Metafunc instance has no attribute 'parameterize'
我的目标:我想从这个csv中读取数据,并根据这个csv中的值参数化我的测试(和许多其他测试)。我不明白为什么没有拾取Metafunc.parameterize。我需要单独安装吗
另外,是否有更好的方法来完成此任务(即从csv文件中参数化多个测试?py.test拼写为“参数化”(在“t”之后没有“e”)FYI:您可以运行
py.test--pdb
在失败时放入调试器。从那里,输入dir(metafunc)
将显示metafunc上可用的方法。