以下内容纯属个人理解,如有不足,还请指正,转载请注明出处,喜欢请动动小指头点赞评论哦(▽)!
前言
@pytest.mark.usefixtures是Pytest调用fixture的方法之一,与直接传入fixture不同的是,它无法获取到被fixture装饰的函数的返回值。
@pytest.mark.usefixtures的使用场景是被测试函数需要多个fixture做前后置工作时使用
用法
@pytest.mark.usefixtures(self,*fixturenames)
def test_one():
pass
参数说明:
参数 | 说明 |
---|---|
*fixturenames | fixture的名字,传入的是@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
运行结果:
总结:
- 单个fixture:在被测试函数之前执行
- 多个fixture: 按传值先后顺序执行
- 叠加fixture: 自下至上执行,离测试函数越近的先被执行
以上内容纯属个人理解,如有不足,请指正,转载请注明出处!