在python中将pytest添加到屈服函数中?

在python中将pytest添加到屈服函数中?,python,pytest,Python,Pytest,我想类似的东西可以回答我的问题,我只是不知道如何实现它 我写了这个函数: def print_max(list_name,k): for i in range(len(list_name)-(k-1)): yield (max(list_name[i:i+k])) print(print_max([10,5,2,7,8,7],3)) 我想把它添加到pytest中。 这通常是我运行pytest的方式: @pytest.marks.paramet

我想类似的东西可以回答我的问题,我只是不知道如何实现它

我写了这个函数:

def print_max(list_name,k):
        for i in range(len(list_name)-(k-1)):
                yield (max(list_name[i:i+k]))


print(print_max([10,5,2,7,8,7],3))
我想把它添加到pytest中。 这通常是我运行pytest的方式:

@pytest.marks.parametrize('input1','output1',[[10,5,2,7,8,7], X]:
def test_fun(input1, output1):
    assert print_max(input1) == output1

在这个pytest中,我将X更改为什么,以允许函数有一个屈服输出?或者,如果函数是一个yield,那么做这个pytest的最佳方法是什么?

当您使用
yield
时,您正在生成一个迭代器,因此需要在比较之前迭代结果

你需要这样的东西:

assert [print_max(input1)] == output1   # create list from iterator

我想你不明白print\u max在做什么,它返回一个迭代器生成器。您只是将生成器对象与
output1
进行比较。。。这真的与Pytest无关。