zoukankan      html  css  js  c++  java
  • 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"])
    

      

  • 相关阅读:
    cookie,请求报文,
    ser,ver
    关于 通知的 死循环,
    这读取的好蛋疼,为什么一写 一读就有问题了,不一致了,
    缓存小姐 挡拆,网络请求 不同步 惹的祸,
    viewdidload ,viewwillappear,
    提示输入 用户名 ,密码,--》转
    前端面试
    npm与cnpm
    vue与node和npm关系
  • 原文地址:https://www.cnblogs.com/zhangying1/p/14281312.html
Copyright © 2011-2022 走看看