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--->
    
    # 如下的用例打印前后未执行初始化和清除操作
    上海多测师
    .
  • 相关阅读:
    如何用vue组件做个机器人?有趣味的代码
    vue--监听属性完成大小写字母间的转换
    C语言基础:进制转换,变量,常量,表达式,基本数据类型,输出函数,输入函数,运算符. 分类: iOS学习 c语言基础 2015-06-10 21:39 25人阅读 评论(0) 收藏
    2019年最新50道java基础部分面试题
    28道java基础面试题-下
    最新28道java基础面试题-上
    后台管理UI模板
    Bellman-Ford 算法及其优化
    【枚举Day1】20170529-2枚举算法专题练习 题解
    【枚举Day1】20170529-2枚举算法专题练习 题目
  • 原文地址:https://www.cnblogs.com/ZhengYing0813/p/12883925.html
Copyright © 2011-2022 走看看