zoukankan      html  css  js  c++  java
  • Pytest测试框架(二):pytest 的setup/teardown方法

    PyTest支持xUnit style 结构, setup() 和 teardown() 方法用于初始化和清理测试环境,可以保证测试用例的独立性。pytest的setup/teardown方法包括:模块级别(setup_module/teardown_module)、函数级别(setup_function/teardown_function)、类级别(setup_class/ teardown_class)、方法级别(setup_method/teardown_methond或者setup/teardown)。

    模块级别

    模块中的第一个测试用例开始前执行setup_module方法,模块中的最后一个测试用例结束后运行teardown_module方法。

    import pytest
    
    def setup_module():
        print("初始化。。。")
    
    def teardown_module():
        print("清理。。。")
    
    class Test_Demo():
        def test_case1(self):
            print("开始执行测试用例1")
            assert 1 + 1 == 2
    
        def test_case2(self):
            print("开始执行测试用例2")
            assert 2 + 8 == 10
    
        def test_case3(self):
            print("开始执行测试用例3")
            assert 99 + 1 == 100
    

    结果:

    模块初始化。。。
    PASSED                     [ 33%]开始执行测试用例1
    PASSED                     [ 66%]开始执行测试用例2
    PASSED                     [100%]开始执行测试用例3
    模块清理。。。
    

    函数级别

    setup_function/teardown_function在每个测试函数前后运行,只对函数用例生效,不在类中。

    import pytest
    
    def setup_function():
        print("初始化。。。")
    
    def teardown_function():
        print("清理。。。")
    
    def test_case1():
        print("开始执行测试用例1")
        assert 1 + 1 == 2
    
    def test_case2():
        print("开始执行测试用例2")
        assert 2 + 8 == 10
    
    def test_case3():
        print("开始执行测试用例3")
        assert 99 + 1 == 100
    

    结果:

    test_setup_teardown2.py::test_case1 初始化。。。
    PASSED                               [ 33%]开始执行测试用例1
    清理。。。
    
    test_setup_teardown2.py::test_case2 初始化。。。
    PASSED                               [ 66%]开始执行测试用例2
    清理。。。
    
    test_setup_teardown2.py::test_case3 初始化。。。
    PASSED                               [100%]开始执行测试用例3
    清理。。。
    
    

    类级别

    类级别函数 setup_class/teardown_class 对类有效,位于类中,在测试类中前后调用一次。

    class Test_Demo():
        def setup_class(self):
            print("初始化。。。")
    
        def teardown_class(self):
            print("清理。。。")
    
        def test_case1(self):
            print("开始执行测试用例1")
            assert 1 + 1 == 2
    
        def test_case2(self):
            print("开始执行测试用例2")
            assert 2 + 8 == 10
    
        def test_case3(self):
            print("开始执行测试用例3")
            assert 99 + 1 == 100
    

    结果:

    初始化。。。
    PASSED                    [ 33%]开始执行测试用例1
    PASSED                    [ 66%]开始执行测试用例2
    PASSED                    [100%]开始执行测试用例3
    清理。。。
    

    方法级别

    方法级别函数 setup_method/teardown_method和setup/teardown对类有效,也位于类中,这两个效果一样,在测试类中每个测试方法前后调用一次。

    class Test_Demo():
        def setup_method(self):
            print("初始化。。。")
    
        def teardown_method(self):
            print("清理。。。")
    
        def test_case1(self):
            print("开始执行测试用例1")
            assert 1 + 1 == 2
    
        def test_case2(self):
            print("开始执行测试用例2")
            assert 2 + 8 == 10
    
        def test_case3(self):
            print("开始执行测试用例3")
            assert 99 + 1 == 100
    

    结果:

    初始化。。。
    PASSED                    [ 33%]开始执行测试用例1
    清理。。。
    初始化。。。
    PASSED                    [ 66%]开始执行测试用例2
    清理。。。
    初始化。。。
    PASSED                    [100%]开始执行测试用例3
    清理。。。
    
    --THE END--

    文章标题:Pytest测试框架(二):pytest 的setup/teardown方法
    本文作者:hiyo
    本文链接:https://hiyong.gitee.io/posts/pytest-xunit-style-of-setup-teardown/
    欢迎关注公众号:「测试开发小记」及时接收最新技术文章!

  • 相关阅读:
    关于webpack升级过后不能打包的问题;
    数组的一些理解
    .NET(C#):使用Win32Exception类型处理Win32错误代码
    托管代码和非托管代码
    托管DLL和非托管DLL的区别
    C#实现Dll(OCX)控件自动注册的两种方法(转)
    Com组件和Dll文件区别
    C#创建COM组件
    ajaxFileUpload插件上传文件 返回 syntaxError :unexpected token
    jquery插件--ajaxfileupload.js上传文件原理分析
  • 原文地址:https://www.cnblogs.com/hiyong/p/14163271.html
Copyright © 2011-2022 走看看