以下内容纯属个人理解,如有不足,还请指正,转载请注明出处,喜欢请动动小指头点赞评论哦(▽)!
让我们先来看一个小栗子:
# -*- coding:utf-8 -*-
'''
@Author : 测试工程师Jane
@FileName : a.py
@Description:
'''
import pytest
@pytest.fixture()
def login():
print("今天的笔记做完了吗?")
yield
print("今天的笔记做完啦!!!")
def test_01(login):
print("我是用例一")
if __name__ == '__main__':
pytest.main()
运行结果:
从以上运行结果我们可以看到,带有yiled的fixture函数,yiled函数语句分别在测试类前后被执行,我们来总结一下带yiled的fixture特性。
总结:
- 一般的fixture 函数会在测试函数之前运行,但是如果 fixture 函数包含 yiled,那么会在 yiled处停止并转而运行测试函数,等测试函数执行完毕后再回到该 fixture 继续执行 yiled 后面的代码。
- 可以将 yiled前面的代码看作是 setup,yiled 后面的部分看作是 teardown 的过程。
- 无论是测试函数中发生了什么是成功还是失败或者 error 等情况,yiled 后面的代码都会被执行,yiled 中的返回数据也可以在测试函数中使用
以上内容纯属个人理解,如有不足,还请指定。转载请注明出处!