我想对来自不同模块的函数运行我的测试(在一个模块中我定义了调用一些C ++代码的函数,而在另一个模块中我有相同的函数调用不同的代码)。使用py.test做什么的方法是什么?
答案 0 :(得分:1)
您可以使用metafunc并使用conftest.py
和pytest_addoption
函数创建pytest_generate_tests
文件:
def pytest_addoption(parser):
parser.addoption("--libname", action="append", default=[],
help="name of the tested library")
def pytest_generate_tests(metafunc):
if 'libname' in metafunc.fixturenames:
metafunc.parametrize("libname", metafunc.config.option.libname)
在tests.py
文件的函数中,您可以使用importlib并询问libname:
def test_import(libname):
import importlib
tested_library = importlib.import_module(libname)
.......
现在,运行测试时,您应该提供要测试的模块的名称:
py.test tests.py --libname=your_name1
(您还可以添加--libname=your_name2
)