pytest框架笔记(四) : fixture之yield实现teardown

一、yield执行teardown

1、上一节讲的是用例前加前置条件,在这里讲一下fixture里面利用yield来唤醒teardown的执行

#!encoding=utf-8
import pytest

@pytest.fixture(scope="module")
def open():
    print("打开浏览器,并且打开百度首页")
    yield
    print("执行teardown")
    print("最后关闭浏览器")

def test_s1(open):
    print("执行用例1")

def test_s2(open):
    print("执行用例2")

def test_s3(open):
    print("执行用例3")

if __name__=="__main__":
    pytest.main('-s test_class005.py')

运行结果

打开浏览器,并且打开百度首页
.执行用例1
.执行用例2
.执行用例3
执行teardown
最后关闭浏览器
                                                     [100%]

============================== 3 passed in 0.02s ==========
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是一个示例代码框架,使用了 `conftest` 和 `pytest fixture`,并实现了不同作用域的变量使用: conftest.py ```python import pytest # session 级别的 fixture,作用域为整个测试会话 @pytest.fixture(scope='session') def session_fixture(): print('session fixture setup') yield print('session fixture teardown') # module 级别的 fixture,作用域为当前测试模块 @pytest.fixture(scope='module') def module_fixture(): print('module fixture setup') yield print('module fixture teardown') # function 级别的 fixture,作用域为每个测试函数 @pytest.fixture(scope='function') def function_fixture(): print('function fixture setup') yield print('function fixture teardown') ``` test_example.py ```python def test_one(session_fixture, module_fixture, function_fixture): print('test one') def test_two(session_fixture, module_fixture, function_fixture): print('test two') ``` 在上面的代码中,我们定义了三个不同作用域的 fixture,分别是 `session_fixture`、`module_fixture` 和 `function_fixture`。在 `test_example.py` 中,我们使用了这三个 fixture,每个测试函数都会执行这三个 fixture,且每个 fixture 的作用域不同。 如果我们执行 `pytest test_example.py` 命令,输出如下: ``` session fixture setup module fixture setup function fixture setup test one function fixture teardown function fixture setup test two function fixture teardown module fixture teardown session fixture teardown ``` 可以看到,`session_fixture` 在整个测试会话中只会执行一次,在测试开始前和结束后分别执行了 `session_fixture setup` 和 `session_fixture teardown`。`module_fixture` 在每个测试模块中执行一次,在测试模块开始前和结束后分别执行了 `module_fixture setup` 和 `module_fixture teardown`。`function_fixture` 在每个测试函数中执行一次,在每个测试函数开始前和结束后分别执行了 `function_fixture setup` 和 `function_fixture teardown`。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值