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"])
    

      

  • 相关阅读:
    0508---字符串练习题
    0506--习题
    0503---练习题 punctuation isdigit() strip() upper()
    0505---练习题
    0504---习题str.swapcase() str. capitalize() str.title()
    0429---每日习题 菲薄纳西数列 正则ip匹配
    习题之---文件操作
    NOIP 模拟 $13; ext{工业题}$
    NOIP 模拟 $12; ext{简单的填数}$
    NOIP 模拟 $12; ext{简单的玄学}$
  • 原文地址:https://www.cnblogs.com/zhangying1/p/14281312.html
Copyright © 2011-2022 走看看