10、Pytest之调用Fixture@pytest.mark.usefixtures

以下内容纯属个人理解,如有不足,还请指正,转载请注明出处,喜欢请动动小指头点赞评论哦(▽)!

前言

@pytest.mark.usefixtures是Pytest调用fixture的方法之一,与直接传入fixture不同的是,它无法获取到被fixture装饰的函数的返回值。
@pytest.mark.usefixtures的使用场景是被测试函数需要多个fixture做前后置工作时使用

用法
@pytest.mark.usefixtures(self,*fixturenames)
def test_one():
	pass

参数说明:

参数说明
*fixturenamesfixture的名字,传入的是@pytest.fixture(name)里的name值,可以传多个
举栗

场景一:传入单个Fixture

'''
@Author     : 测试工程师Jane
@FileName   : usefixture.py
@Description:
'''
import pytest
@pytest.fixture()
def one():
    print("我是一个fixture函数")

@pytest.mark.usefixtures('one')
def test_one_fixture():
    print("测试用例一")
    assert 1==1

运行结果:
在这里插入图片描述
场景一:传入多个Fixture

'''
@Author     : 测试工程师Jane
@FileName   : usefixture.py
@Description:
'''
import pytest
@pytest.fixture()
def one():
    print("我是第一个fixture函数")

@pytest.fixture()
def two():
    print("我是第二个fixture函数")
    
@pytest.mark.usefixtures('one','two')
def test_one_fixture():
    print("测试用例一")
    assert 1==1

在这里插入图片描述
场景一:叠加多个Fixture

# -*- coding:utf-8 -*-
'''
@Author     : 测试工程师Jane
@FileName   : usefixture.py
@Description:
'''
import pytest
@pytest.fixture()
def one():
    print("我是第一个fixture函数")

@pytest.fixture()
def two():
    print("我是第二个fixture函数")

@pytest.mark.usefixtures('one')
@pytest.mark.usefixtures('two')
def test_one_fixture():
    print("测试用例一")
    assert 1==1

运行结果:
在这里插入图片描述
总结:

  1. 单个fixture:在被测试函数之前执行
  2. 多个fixture: 按传值先后顺序执行
  3. 叠加fixture: 自下至上执行,离测试函数越近的先被执行

以上内容纯属个人理解,如有不足,请指正,转载请注明出处!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值