一. yield 关键字简介
fixture 相当于 setup,那么前置条件有了,后置条件也一定有。通过在 fixture 函数中加⼊ yield 关键字,yield 关键字后面跟着测试所需的测试数据,下面添加清理代码,当 fixture 函数第一次初始化,yield 会调⽤第⼀次初始化结果返回,第⼆次执⾏它下⾯的清理代码返回,这便是后置条件。
yield 语句的使用可以创建更加灵活的测试环境,使得资源的初始化和清理可以在一个 fixture 中完成,同时减少了重复代码。
-
yield 在 fixture 中的工作流程
🔹 准备工作:在 fixture 函数中,使用 yield 语句之前的代码属于前置条件,通常是初始化测试所需的资源(如数据库连接、测试数据等)。
🔹 测试执行:yield 会将控制权交给测试函数,并将测试所需的资源传递给它。
🔹 清理工作:使用 yield 语句之后的代码属于后置条件,测试用例执行完成后才会执行,通常用于清理资源,如关闭文件、断开连接等。
二. yield 的应用
使用步骤
- 定义一个 fixture 函数,在初始化动作完成之后添加 yield 语句
- 在 yield 语句后返回测试函数所需数据,当 fixture 函数初始化后,会将测试数据传递给测试函数
- 在 yield 关键字下方编写测试用例执行之后需要完成的操作
实战案例
-
代码示例
pythonimport pytest @pytest.fixture(scope="class") def login(): # setup 操作 print("输入密码") username = "user" password = 'Aa123456' yield username, password # 相当于return # teardown 操作 print("退出操作") def test_search(login): username, password = login print(f"password: {password} , username : {username}") print("搜索")- 运行结果

- 运行结果