pytest测试框架(二)

2022-02-21  本文已影响0人  在下YM

setup和teardown函数

函数级别

import pytest

def setup_function():
    print("setup_function(): 每个方法之前执行")


def teardown_function():
    print("teardown_function(): 每个方法之后执行")


def test_01():
    print("正在执行test1")


def test_02():
    print("正在执行test2")

class TestClass(object):
    def test_03(self):
        print("正在执行 类方法 test3")


def normal_func():
    print("正在执行normal_func")

运行结果如下:

plugins: tavern-1.16.3, openfiles-0.3.2, arraydiff-0.3, allure-pytest-2.9.45, doctestplus-0.3.0, remotedata-0.3.1
collected 3 items                                                                                                                                         

pytest_code2.py setup_function(): 每个方法之前执行
正在执行test1
.teardown_function(): 每个方法之后执行
setup_function(): 每个方法之前执行
正在执行test2
.teardown_function(): 每个方法之后执行
正在执行 类方法 test3
.

==================================================================== 3 passed in 0.03s ====================================================================

类级别

import pytest


class TestMethod(object):
    @classmethod
    def setup_class(cls):
        print("setup_class(self):每个类之前执行一次")

    @classmethod
    def teardown_class(cls):
        print("teardown_class(self):每个类之后执行一次")

    def setup_method(self):
        print("setup_method(self):在每个方法之前执行")

    def teardown_method(self):
        print("teardown_method(self):在每个方法之后执行\n")

    def test_01(self):
        print("正在执行test1")


    def test_02(self):
        print("正在执行test2")

    def normal_func(self):
        print("正在执行normal_func")

运行结果如下:

plugins: tavern-1.16.3, openfiles-0.3.2, arraydiff-0.3, allure-pytest-2.9.45, doctestplus-0.3.0, remotedata-0.3.1
collected 2 items                                                                                                                                         

pytest_code3.py setup_class(self):每个类之前执行一次
setup_method(self):在每个方法之前执行
正在执行test1
.teardown_method(self):在每个方法之后执行

setup_method(self):在每个方法之前执行
正在执行test2
.teardown_method(self):在每个方法之后执行

teardown_class(self):每个类之后执行一次


==================================================================== 2 passed in 0.03s ====================================================================

模块级别

import pytest

def setup_module():
    print("setup_module():在模块最之前执行")


def teardown_module():
    print("teardown_module:在模块之后执行")


def setup_function():
    print("setup_function():每个方法之前执行")


def teardown_function():
    print("teardown_function():每个方法之后执行")

def test_outside_1():
    print('正在执行test_outside_1')

def test_outside_2():
    print('正在执行test_outside_2')

class TestMethod(object):
    @classmethod
    def setup_class(cls):
        print("setup_class(self):每个类之前执行一次")

    @classmethod
    def teardown_class(cls):
        print("teardown_class(self):每个类之后执行一次")

    def setup_method(self):
        print("setup_method(self):在每个方法之前执行")

    def teardown_method(self):
        print("teardown_method(self):在每个方法之后执行\n")

    def test_01(self):
        print("正在执行test1")

    def test_02(self):
        print("正在执行test2")

    def normal_func(self):
        print("正在执行normal_func")

运行结果如下:

plugins: tavern-1.16.3, openfiles-0.3.2, arraydiff-0.3, allure-pytest-2.9.45, doctestplus-0.3.0, remotedata-0.3.1
collected 4 items                                                                                                                                         

pytest_code4.py setup_module():在模块最之前执行
setup_function():每个方法之前执行
正在执行test_outside_1
.teardown_function():每个方法之后执行
setup_function():每个方法之前执行
正在执行test_outside_2
.teardown_function():每个方法之后执行
setup_class(self):每个类之前执行一次
setup_method(self):在每个方法之前执行
正在执行test1
.teardown_method(self):在每个方法之后执行

setup_method(self):在每个方法之前执行
正在执行test2
.teardown_method(self):在每个方法之后执行

teardown_class(self):每个类之后执行一次
teardown_module:在模块之后执行


==================================================================== 4 passed in 0.03s ====================================================================

小结

上一篇 下一篇

猜你喜欢

热点阅读