zoukankan      html  css  js  c++  java
  • Pytest 单元测试框架之初始化和清除环境

    1、方法级别初始化、清除

    • pytest 中的 setup 和 teardown
    • 在每个方法执行前后都会执行一次
    • 固定函数名称如下(函数名称不能写错
    def setup(self):
        print("setup_function--->")
    
    def teardown(self):
        print("teardown_function--->")
    def setup_method(cls):
        print("setup_function--->")
    
    def teardown_method(cls):
        print("teardown_function--->")
    • 实例如下
    import pytest
    
    class Test():
        def setup(self):
            print("setup_function--->")
    
        def teardown(self):
            print("teardown_function--->")
    
        def test_01(self):
            print("深圳多测师")
    
        def test_02(self):
            print("广州多测师")
    
        def test_03(self):
            print("上海多测师")
    
    if __name__ == '__main__':
        pytest.main(["-s","test_demo1.py"])
    
    # 结果如下
    test_demo1.py 
    
    setup_function--->
    深圳多测师
    .teardown_function--->
    
    setup_function--->
    广州多测师
    .teardown_function--->
    
    setup_function--->
    上海多测师
    .teardown_function--->

    2、模块级别初始化、清除

    • 分别在整个模块中所有类中的内容执行前后运行setup_module和teardown_module
    • 设置全局方法 def setup_module() 和 def teardown_module()
    # 定义全局方法
    def setup_module():
        print("setup_function--->")
    
    def teardown_module():
        print("teardown_function--->")
    
    class Test01():
    
        def test_01(self):
            print("深圳多测师")
    
        def test_02(self):
            print("广州多测师")
    
    class Test02():
    
        def test_03(self):
            print("上海多测师")
    
    # 结果如下
    
    collected 3 items
    test_demo1.py 
    
    setup_function--->
    深圳多测师
    .广州多测师
    .上海多测师
    .teardown_function--->

    3、类级别初始化、清除

    • 在类中添加类方法 def setup_class(cls) 和 def teardown_class(cls)
    • 在定义了类方法 def setup_class(cls) 和 def teardown_class(cls) 的类中所有的用例执行前后只执行一次
    class Test01():
        @classmethod
        def setup_class(cls):
            print("setup_function--->")
    
        @classmethod
        def teardown_class(cls):
            print("teardown_function--->")
    
        def test_01(self):
            print("深圳多测师")
    
        def test_02(self):
            print("广州多测师")
    
    class Test02():
    
        def test_03(self):
            print("上海多测师")
    
    # 结果如下
    collected 3 items                                                                                            
    test_demo1.py 
    
    setup_function--->
    深圳多测师
    .广州多测师
    .teardown_function--->
    
    # 如下的用例打印前后未执行初始化和清除操作
    上海多测师
    .
  • 相关阅读:
    GIT基础详解
    JS进阶解析
    JS基础解析
    CSS布局模型解析
    02.CentOS Linux 7.7 系统配置文档
    docker 创建bridge网络和修改默认网段
    selenium浏览器自动化测试工具 进阶使用
    前端导出Excel和打印介绍
    stm32使用gmtime()转换timestamp为日期,出的结果是乱的,不符合预期。改为localtime正常输出
    .net core api action 不能用作 httpget注释的参数名
  • 原文地址:https://www.cnblogs.com/ZhengYing0813/p/12883925.html
Copyright © 2011-2022 走看看