【Python】测试框架中的setUp和teardown

unittest


 

setup()和teardown()两个函数在每条测试用例执行时都会进行重复执行一次
该场景针对那些测试用例间有相互影响的场景,才需要在每执行一条新用例时进行一次初使化,执行完毕后再清空所有配置

setupclass(cls)和teardownclass(cls)两个函数在一个用例集合执行前只会执行一次,然后再所有用例执行完成后再清空所有配置
此种用法主要用在用例之间相互没有什么影响的场景

 

import unittest

class TestAuto(unittest.TestCase):

    env = "sit"
    case_rownum = 1

    @classmethod
    def setUpClass(cls):
        print("同一测试类下在所有测试用例执行前,有且只执行一次")

    @classmethod
    def tearDownClass(cls):
        print("同一测试类下在所有测试用例执行后,有且只执行一次")


    @classmethod
    def setUp(cls):
        print("同一测试类下在每个测试用例执行前,均执行一次")

    @classmethod
    def tearDown(cls):
        print("同一测试类下在每个测试用例执行后,均执行一次")

    def test_case1(self):
        print("case1")

    def test_case2(self):
        print("case2")

if __name__ == "__main__":
    unittest.main()

 

 

 

 

 

 

Pytest


 

模块级(setup_module/teardown_module)开始于模块始末,全局的在类中不起作用
类级(setup_class/teardown_class)只在类中前后运行一次(在类中)
方法级(setup_method/teardown_method)开始于方法始末(在类中)
函数级(setup_function/teardown_function只对函数用例生效(在类中不生效)

import pytest

class TestAuto:

    env = "sit"
    num = 1

    def setup_class(self):
        print("同一测试类下在所有测试用例执行前,有且只执行一次")

    def teardown_class(self):
        print("同一测试类下在所有测试用例执行后,有且只执行一次")

    def setup(self):
        print("同一测试类下在每个测试用例执行前,均执行一次")

    def teardown(self):
        print("同一测试类下在每个测试用例执行后,均执行一次")

    def test_case1(self):
        print("case1")

    def test_case2(self):
        print("case2")

if __name__ == "__main__":
    pytest.main(["-s", "test_debug.py"])

 

posted @ 2022-04-14 09:33  Phoenixy  阅读(234)  评论(0编辑  收藏  举报