我想为我的代码编写测试函数,并决定使用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-您可以直接了解如何更新代码。
我确信,我在这里遗漏了一些重要的东西,但搜索谷歌并没有帮助我,这就是为什么我希望这里的人能提供一些帮助。
1条答案
按热度按时间xoefb8l81#
从脚本中删除这一行
使用运行脚本文件
pytest file.py
夹具将由pytest自动解析在您的示例中,您直接运行代码,而fixture只是简单的函数