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--->
    
    # 如下的用例打印前后未执行初始化和清除操作
    上海多测师
    .
  • 相关阅读:
    【JZOJ5771】遨游【二分】【DFS】
    【JZOJ5773】简单数学题【数论,数学】
    【JZOJ5773】简单数学题【数论,数学】
    有效壳第2部分:成为一个剪贴板体操运动员
    具有多重选择和列表间拖拽的拖拽列表框
    将枚举绑定到下拉列表框并根据值对其排序
    一个具有子项格式的自定义绘制列表控件
    基本的c#屏幕截图应用程序
    将组合框下拉列表宽度调整为最长字符串宽度
    在应用程序中使用按钮控件
  • 原文地址:https://www.cnblogs.com/ZhengYing0813/p/12883925.html
Copyright © 2011-2022 走看看