Python pytest AttributeError:Metafunc实例没有属性';参数化';

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

我正在尝试使用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().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上可用的方法。