zoukankan      html  css  js  c++  java
  • pytest ---setup和teardown的详细使用

    Pytest提供了类似unittest的setup、teardown的方法,并且还超过四个,一共有十种

    • 模块级别:setup_module、teardown_module ---模块前置setup_module和后置teardown_module,放类中无效,放类外且类外有函数用例或类内有函数用例时才生效,整个.py模块开始前和结束后各调用一次
    • 函数级别:setup_function、teardown_function---函数前置setup_function和后置teardown_function,放类中无效,放类外且类外有函数用例时才生效,每个用例开始前和结束后各调用一次,调用多次
    • 类级别:setup_class、teardown_class(与unitest一样)---类前置setup_class和后置teardown_class,放类外无效,放类内且类内有函数用例时才生效,类开始前和结束后各执行一次(方法级,调用1次)
    • 方法级别:setup_method、teardown_method  ---方法前置setup_method和后置teardown_method,放类外无效,放类内且类内有函数用例时才生效,每个用例开始前和结束后调用1次(方法级,调用多次)
    • 方法细化级别:setup、teardown(与unitest一样)---运行在调用方法前后 

    示例:

    import pytest
    
    def setup_module():
        print("=====整个.py模块开始前只执行一次: 脚本开始执行脚本=====")
    
    def teardown_module():
        print("=====整个.py模块结束后只执行一次: 脚本执行结束===")
    
    def setup_function():
        print("===每个函数级别用例开始前都执行,不在类中, setup_function===")
    
    
    def teardown_function():
        print("===每个函数级别用例结束后都执行,不在类中, teardown_function====")
    
    def test_one():
        print("one")
    
    
    def test_two():
        print("two")
    
    
    
    class Testcaselist():
        # 类里面的
        def setup(self):
            print('setup: 每个用例前开始执行')
        def teardown(self):
            print('teardown: 每个用例后开始执行')
    
        def setup_method(self):
            print('setup: 每个类方法用例前开始执行')
        def teardown_method(self):
            print('teardown: 每个类方法用例后开始执行')
            # 测试用例
        def test_001(self):
            print("正在执行test_001用例")
            p = "Python"
            assert "h" in p
        def test_002(self):
            print("正在执行test_002用例")
            p = 'test'
            assert 't' in p
        if __name__ == '__main__':
            pytest.main(['-s', 'test_hello.py'])
     
    输出:

    =====整个.py模块开始前只执行一次: 脚本开始执行脚本=====
    ===每个函数级别用例开始前都执行,不在类中, setup_function===
    one
    .===每个函数级别用例结束后都执行,不在类中, teardown_function====
    ===每个函数级别用例开始前都执行,不在类中, setup_function===
    two
    .===每个函数级别用例结束后都执行,不在类中, teardown_function====
    setup: 每个类方法用例前开始执行
    setup: 每个用例前开始执行
    正在执行test_001用例
    .teardown: 每个用例后开始执行
    teardown: 每个类方法用例后开始执行
    setup: 每个类方法用例前开始执行
    setup: 每个用例前开始执行
    正在执行test_002用例
    .teardown: 每个用例后开始执行
    teardown: 每个类方法用例后开始执行
    =====整个.py模块结束后只执行一次: 脚本执行结束===

     

    类与函数混合:

    setup_module和teardown_module优先级最大

     
  • 相关阅读:
    极光推送
    浅谈Android的屏幕适配问题
    Git/GitHub学习第一天
    Android学习总结
    为什么现在开始写你的第一篇博客
    escape.alf.nu XSS Challenges 0-7 之一步步学XSS
    PE文件学习
    通过sqli-labs学习sql注入——基础挑战之less11-22
    通过sqli-labs学习sql注入——基础挑战之less1-10
    重学数据结构系列之——总结
  • 原文地址:https://www.cnblogs.com/saryli/p/14648879.html
Copyright © 2011-2022 走看看