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--->
    
    # 如下的用例打印前后未执行初始化和清除操作
    上海多测师
    .
  • 相关阅读:
    管理技巧,绩效考核自评怎么写
    网站运营文章LIST
    搜索引擎算法研究专题六:HITS算法
    搜索引擎算法研究专题五:TF-IDF详解
    搜索引擎算法研究专题七:Hilltop算法
    搜索引擎算法研究专题四:随机冲浪模型介绍
    搜索引擎算法研究专题三:聚集索引与非聚集索引介绍
    利用Lucene.net搜索引擎进行多条件搜索的做法
    五大主流数字币钱包:imToken数字货币钱包,Bitcoin core钱包,BTS网页版钱包,AToken轻钱包,Blockchain
    Java 9 逆天的十大新特性
  • 原文地址:https://www.cnblogs.com/ZhengYing0813/p/12883925.html
Copyright © 2011-2022 走看看