python—为什么在测试脚本中使用fixture(来自pytest)只获取函数作为返回值?

eivgtgni  于 2021-08-25  发布在  Java
关注(0)|答案(1)|浏览(447)

我想为我的代码编写测试函数,并决定使用pytest。我了解了本教程:https://semaphoreci.com/community/tutorials/testing-python-applications-with-pytest
我真正的代码涉及我编写的另一个脚本,因此我制作了一个示例,它也产生了同样的问题,但不依赖于我的其他代码。

@pytest.fixture()
def example():
    value = 10
    return value

def test_value(example):
    print(example)
    assert(example == 10)

test_value(example)

当我使用这个玩具示例运行脚本时,打印将返回一个函数:
<0x0391e540处的功能示例>
Assert失败了。
如果我尝试用括号调用example(),我会得到以下结果:
失败:直接调用fixture“example_chunks”。fixture并不意味着直接调用,而是在测试函数请求它们作为参数时自动创建的。看见https://docs.pytest.org/en/stable/fixture.html 有关设备的详细信息,以及https://docs.pytest.org/en/stable/deprecations.html#calling-您可以直接了解如何更新代码。
我确信,我在这里遗漏了一些重要的东西,但搜索谷歌并没有帮助我,这就是为什么我希望这里的人能提供一些帮助。

xoefb8l8

xoefb8l81#

从脚本中删除这一行

test_value(example)

使用运行脚本文件 pytest file.py 夹具将由pytest自动解析
在您的示例中,您直接运行代码,而fixture只是简单的函数

相关问题