Python 当decorator添加参数时pytest fixture注入

Python 当decorator添加参数时pytest fixture注入,python,pytest,Python,Pytest,我试图修饰测试函数并返回一个需要fixture的包装器,但是,pytest似乎忽略了包装器,并通过包装函数来确定需要哪些fixture 人为的例子: def decorator(func): @functools.wraps(func) def _wrapper(some_fixture, *args, **kwargs): expected_results = some_fixture.load_results_for_case(func) ob

我试图修饰测试函数并返回一个需要fixture的包装器,但是,pytest似乎忽略了包装器,并通过包装函数来确定需要哪些fixture

人为的例子:

def decorator(func):
    @functools.wraps(func)
    def _wrapper(some_fixture, *args, **kwargs):
        expected_results = some_fixture.load_results_for_case(func)
        observed_results = func(*args, **kwargs)
        assert expected_results == observed_results
    return _wrapper

@decorator
def test_some_feature():
    # some fancy code generating complex dataset
    return complex_dataset

我有点困惑。“测试函数”是什么意思?您的
test\u some\u功能
看起来不像一个测试(它返回一些测试没有返回的东西,并且似乎没有进行测试),您能解释一下它应该做什么吗?你在测试什么(在这个例子中),你期望什么?正确。test\u some\u feature函数不是一个传统的外观测试,而是一个包装器,因此,test\u some\u feature被修饰成一个测试函数。让我更新一下这个例子,让它更现实一点。如果你能解释一下你想要实现什么,这会有所帮助——也许有一种更简单的方法可以做到这一点。