pytest的fixture学习二

2020-06-30  本文已影响0人  小源宝1573

测试函数可以通过将fixture对象命名为输入参数来接受。对于每个参数名称,具有该名称的fixture函数将提供fixture对象。fixture函数通过使用@ pytest.fixture标记来注册。下面看一个简单的自包含测试模块,其中包含一个fixture和一个使用它的测试功能:

fixture作为函数参数

该示例将“f()”函数标记为@pytest.fixture,在测试函数test_a()中的输入参数填写为“f”,那么运行时,会进行相应调用:

运行结果

在失败的跟踪日志中,测试函数是通过参数“f”调用,且在运营该用例时,“f”就会被执行。测试函数在最后assser处失败。这是通过pytest使用调用测试函数的协议:

1、pytest根据test前缀来找到测试用例“test_a”,测试函数需要一个名为“f”的函数参数。通过查找名为“f”的带有fixture标记的函数,来匹配fixture函数。

2、“f”被调用用来创建一个实例。

3、test_a(<f instance>)被调用,并在测试函数的最后一行失败。

注意: 如果拼错一个函数的参数或者想使用一个不可用的函数参数,那么你可以看到一个错误,并且列出来可用的函数参数。

可以使用

pytest --fixtures test_a.py

来查看可用的fixtures。

如果要查看“_”开头的fixtures,那么需要添加“-v”选项

pytest --fixtures test_a.py pytest --fixtures -v test_a.py

明天再继续~

上一篇下一篇

猜你喜欢

热点阅读