• pytest精髓__fixture


    命令:

    fixture(scope='function',params=None,autouse=False,ids=None,name=None)

    参数说明

    scope:有四个级别参数  函数"function"(默认),类"class",模块"module",整个测试项目"session"。

    params:表示fixture的参数化功能。

    复制代码
     1 import pytest
     2 data = ['老子', '孔子', '孟子']
     3 
     4 @pytest.fixture(params=data,ids=['user=Socrates','user=Platon','user=Aristotle'])
     5 def login(request):
     6     print('哲学兴起')
     7     yield request.param
     8     print('哲学消沉')
     9 
    10 class Test_01:
    11     def test_01(self, login):
    12         print('---用例01---')
    13         print('思想家:%s' % login)
    14 
    15 if __name__ == '__main__':
    16     pytest.main(['-vs'])
    复制代码

    autouse:如果True,自动为用例使用。如果为False则需要设置来激活fixture。

    复制代码
     1 import pytest
     2 @pytest.fixture(autouse=True)
     3 def login():
     4     print('\n早出')
     5     yield
     6     print('\n晚归!')
     7 class Test_Login():
     8     def test_01(self):
     9         print('---小兰---')
    10     def test_02(self):
    11         print('---任正非---')
    12 if __name__ == '__main__':
    13     pytest.main(['-vs'])
    复制代码

    ids:ids表示在fixture对参数化的内容进行加上标识,比如让别人知道这个传入的参数是什么意思。

    name:name参数表示对fixture的名称进行重命名。

    复制代码
     1 import pytest
     2 @pytest.fixture(name='我是冰箱')
     3 def login():
     4     print('\n打开冰箱')
     5     yield
     6     print('\n关上冰箱!')
     7 class Test_Login():
     8     def test_01(self, 我是冰箱):
     9         print('---把大象塞进冰箱---')
    10 if __name__ == '__main__':
    11     pytest.main(['-vs'])
    复制代码

     

     

    例子1  fixture调用与不调用的区别

    复制代码
     1 import pytest
     2 @pytest.fixture()
     3 def login():
     4     print('登录操作')
     5     yield
     6     print('退出登录')
     7 class Test_Login():
     8     def test_01(self, login):
     9         print('需要用到登录!')
    10     def test_02(self):
    11         print('不需要登录!')
    12     def test_03(self, login):
    13         print('这里需要用到登录!')
    14 if __name__ == '__main__':
    15     pytest.main(['-vs'])
    复制代码

    例子2  异常后依然会执行后置操作

    复制代码
     1 import pytest
     2 @pytest.fixture()
     3 def login():
     4     print('登录操作')
     5     yield
     6     print('退出登录!')
     7 class Test_Login():
     8     def test_01(self, login):
     9         print('需要用到登录!')
    10         assert 1==1
    11     def test_02(self):
    12         print('不需要登录!')
    13     def test_03(self, login):
    14         print('这里需要用到登录!')
    15         assert 1==2
    16 if __name__ == '__main__':
    17     pytest.main(['-vs']
    复制代码

    例子2  同时调用两个fixture

    复制代码
     1 import pytest
     2 @pytest.fixture()
     3 def login():
     4     print('登录操作')
     5     yield
     6     print('退出登录!')
     7 @pytest.fixture()
     8 def log():
     9     print('打开日志功能!')
    10     yield 
    11     print('关闭日志功能!')
    12     
    13 class Test_Login():
    14     def test_01(self, login, log):
    15         print('需要用到登录!')
    16     def test_02(self):
    17         print('不需要登录!')
    18     def test_03(self, log, login):
    19         print('这里需要用到登录!')
    20 if __name__ == '__main__':
    21     pytest.main(['-vs'])
    复制代码

     

     

     

    月缺不改光,剑折不改刚。有志向的人自信自强;

    君子量不极,胸吞百川流。有志向的人心有远方;

    丈夫非无泪,不洒离别间。有志向的人情深意长;

    及时当勉励,岁月不待人。有志向的人不会虚度时光。

    人生感意气,功名谁复论。有志向的人看淡名利。

    感时思报国,拔剑起蒿莱。有志向的人是最可靠的力量。

    愿君学长松,慎勿作桃李。

     

  • 相关阅读:
    详解 sudo usermod -aG docker majn
    对Flutter GetX的一些理解
    APS可以给制造型企业带来哪些效益?
    Hibernate多表的关联关系、懒加载
    LabVIEW调用库函数节点无法显示DLL中的函数
    5、DVWA——文件上传
    电商平台运用会员体系运营的好处以及注意事项
    基于小程序实现的惠农小店系统设计与开发
    opencv python 相机启动慢问题 VideoCapture 感觉c++同理
    第二章Maven的使用
  • 原文地址:https://www.cnblogs.com/lzcnblogs/p/16637606.html