1、简介:
fixture区别于unnitest的传统单元测试(setup/teardown)有显著改进:
1.有独立的命名,并通过声明它们从测试函数、模块、类或整个项目中的使用来激活。
2.按模块化的方式实现,每个fixture都可以互相调用。
3.fixture的范围从简单的单元测试到复杂的功能测试,可以对fixture配置参数,或者跨函数function,类class,模块module或整个测试session范围。
2、fixture的作用范围(scope)
fixture里面有个scope参数可以控制fixture的作用范围:session>module>class>function
-function:每一个函数或方法都会调用
-class:每一个类调用一次,一个类中可以有多个方法
-module:每一个.py文件调用一次,该文件内又有多个function和class
-session:是多个文件调用一次,可以跨.py文件调用,每个.py文件就是module
3、调用fixture的三种方法
1.函数或类里面方法直接传fixture的函数参数名称
import pytest
@pytest.fixture(scope="class")
def test_01():
a = 6
b = 7
return (a, b)
class TestNum:
def test_02(self,test_01):
a = test_01[0]
b = test_01[1]
assert a < b
print("断言成功")
2.使用装饰器@pytest.mark.usefixtures()修饰需要运行的用例
import pytest
@pytest.fixture(scope="class")
def test_01():
a = 6
b = 7
return (a, b)