pytest-fixture
一、适用范围
1.替代setup和teardown
2.参数化
如何使用:
1.给要使用的方法传入fixture的函数名
2.使用装饰器@pytest.mark.usefixtures(’’)
3.可以使用多个fixture
4.作用域:session>module>class>function
二、替代setup和teardown
替代setup
给要使用的方法传入fixture的函数名
使用装饰器@pytest.mark.usefixtures(’’)
import pytest
@pytest.fixture()
def login():
print('登陆操作')
def test_case1(login):
print('这是一个测试用例1,需要提前登陆')
def test_case2():
print('这是一个测试用例2,不需要提前登陆')
@pytest.mark.usefixtures('login')
def test_case3():
print('这是一个测试用例3,需要提前登陆')
if __name__ == '__main__':
pytest.main(['test_fixture.py','-sq'])
登陆操作
这是一个测试用例1,需要提前登陆
这是一个测试用例2,不需要提前登陆
登陆操作
这是一个测试用例3,需要提前登陆
替代teardown使用yield
import pytest
@pytest.fixture()
def login():
print('登陆操作')
yield
print('退出登陆')
def test_case1(login):
print('这是一个测试用例1,需要提前登陆')
def test_case2():
print('这是一个测试用例2,不需要提前登陆')
@pytest.mark.usefixtures('login')
def test_case3():
print('这是一个测试用例3,需要提前登陆')
if __name__ == '__main__'