• pytest(五)用例传fixture参数


    fixture 里面有个参数autouse,默认是False没开启的,可以设置为True开启自动使用fixture功能,这样用例就不用每次都去传参了

     调用fixture三种方法:

    • 函数或类里面方法直接传fixture的函数参数名称
    • 使用装饰器@pytest.mark.usefixtures()修饰
    • auto=True自动使用

    用例传fixture参数

    方法一:先定义start功能,用例全部传start参数,调用该功能

    import time
    import pytest
    
    
    @pytest.fixture(scope="function")
    def start(request):
         print('
    ---------开始执行function-------')
    
    
    def test_a(start):
         print("---------用例a执行-------“)
    
    
    
    class Test_aa():
         def test_1(self, start):
               print('---------用例1------------‘')
    
        
         def test_2(self, start):
               print('---------用例2-------")
    
    if __name__=="__main__"
          pytest.main(["-s", "test_000.py"])
    

      方法二:使用装饰器@pytest.mark.usefixtures()修饰需要运行的用例

    import time
    import pytest
    
    
    @pytest.fixture(scope="function")
    def start(request):
         print('
    ---------开始执行function-------')
    
    
    
    @pytest.mark.usefixtures("start")
    def test_a(start):
         print("---------用例a执行-------“)
    
    
    
    @pytest.mark.usefixtures("start")
    class Test_aa():
         def test_1(self, start):
               print('---------用例1------------‘')
    
        
         def test_2(self, start):
               print('---------用例2-------")
    
    if __name__=="__main__"
          pytest.main(["-s", "test_001.py"])
    

      方法三:设置autouse=True  auto 设置为True 自动调用fixture功能

    • start设置scope为module级别,在当前.py用例模块只执行一次,autouse =True自动使用
    • open_home设置scope 为function级别,每个用例前都调用一次,自动使用
    import time
    import pytest
    
    
    @pytest.fixture(scope="module",autouse = True)
    def start(request):
         print('
    ---------开始执行module-------')
         print('module:%s' % request.module.__name__)
         print('-------启动浏览器------')
         yield
         print("--------结束测试end!-----------")
    
    
    
    @pytest.fixture(scope="function",autouse = True)
    def open_home(request):
         print('function:%s 
    ----------回到首页--------' % request.function.__name__)
    
    
    
    @pytest.mark.usefixtures("start")
    class Test_aa():
         def test_1(self, start):
               print('---------用例1------------‘')
    
        
         def test_2(self, start):
               print('---------用例2-------")
    
    if __name__=="__main__"
          pytest.main(["-s", "test_002.py"])
    

      

  • 相关阅读:
    关于docker remote api未授权访问漏洞的学习与研究
    c#调用 WinRAR.exe以命令行形式实现文件、文件夹的解压缩
    Redis作为多个Windows服务运行配置方法
    全景播放器-js+flash
    SQL 拼接多个字段的值&一个字段多条记录的拼接
    mysql-connector-java与mysql版本的对应
    Sass map详解
    情人节网站logo赏析
    表单标签动画畅想
    段落文字彩条效果
  • 原文地址:https://www.cnblogs.com/zhangying1/p/14281312.html
Copyright © 2020-2023  润新知