fixture使用案例scope=“function“

#fixture使用案例scope="function"
import pytest

#fixture(scope="function", params=None, autouse=False, ids=None, name=None):

#@pytest.fixture()如果不写参数,默认就是scope="function",它的作用范围是每个测试用例来之前运行一次

#如果autouse为True,则为所有测试直接激活fixture, 无需往每个函数传入fixture就可以调用它。 如果为False(默认值),则需要往测试函数传入fixture标记的函数名

@pytest.fixture(autouse=False)

def fixture_for_func():

    print('这是fixture装饰器标记的函数')

def test_1():

    print('执行了测试用例test_1')

def test_2():

    print('执行了测试用例test_2')

def test_3(fixture_for_func):

    print('执行了测试用例test_2')


if __name__ == "__main__":

    pytest.main(["-s","-v","/python20190819/api_pytest/tests/test_fixturedemo.py"])

    #pytest.main(["-s","-v","test_fixturedemo.py"])

执行结果:

#fixture使用案例scope="function"
import pytest

#fixture(scope="function", params=None, autouse=False, ids=None, name=None):
#@pytest.fixture()如果不写参数,默认就是scope="function",它的作用范围是每个测试用例来之前运行一次
#如果autouse为True,则为所有测试直接激活fixture, 无需往每个函数传入fixture就可以调用它。 如果为False(默认值),则需要往测试函数传入fixture标记的函数名
@pytest.fixture(autouse=True)
def fixture_for_func():
    print('这是fixture装饰器标记的函数')


def test_1():
    print('执行了测试用例test_1')

def test_2():
    print('执行了测试用例test_2')

def test_3(fixture_for_func):
    print('执行了测试用例test_2')

if __name__ == "__main__":
    pytest.main(["-s","-v","/python20190819/api_pytest/tests/test_fixturedemo2.py"])
    #pytest.main(["-s","-v","test_fixturedemo.py"])

执行结果:

 

#fixture使用案例scope="class"
import pytest

#fixture(scope="function", params=None, autouse=False, ids=None, name=None):
#@pytest.fixture()如果不写参数,默认就是scope="function",它的作用范围是每个测试用例来之前运行一次
#如果autouse为True,则为所有测试直接激活fixture, 无需往每个函数传入fixture就可以调用它。 如果为False(默认值),则需要往测试函数传入fixture标记的函数名
@pytest.fixture(scope="class")
def fixture_for_class():
    print('用在测试类上的fixture')
#当加上scope="class"时,当前模块下的所有类,都会调一次fixture,autouse=False时记得传参
def test_1():
    print('执行了测试用例test_1')

def test_2(fixture_for_class):
    print('执行了测试用例test_2')
#测试类上的fixture'也可以在函数上执行
def test_3():
    print('执行了测试用例test_3')

class Test_Demo1():
    def test_4(self,fixture_for_class):
        print ("执行了测试test4")

class Test_Demo2():
    def test_5(self):
        print ("执行了测试test5")

if __name__ == "__main__":
    pytest.main(["-s","-q","/python20190819/api_pytest/tests/test_fixturedemo3.py"])
    #pytest.main(["-s","-v","test_fixturedemo.py"])

执行结果:

#fixture为module级别时,在当前.py脚本里面所有用例开始前只执行一次
import pytest
@pytest.fixture(scope="module")
def fixture_module():
    print("这是范围是module的fixture")
    a='yoyo'
    return a

def test_1(fixture_module): #传参fixture_module
    '''用例传fixture'''
    print("测试账号:%s" % fixture_module)
    assert fixture_module == "yoyo"
 
class TestCase():
    def test_2(self, fixture_module): #传参fixture_module
        '''用例传fixture'''
        print("测试账号:%s" % fixture_module)
        assert fixture_module == "yoyo"
 
if __name__ == "__main__":
    pytest.main(["-vs", "/python20190819/api_pytest/testsfixture/test_fixturemodule.py"])

执行结果:

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值