在Python unittest中,执行完TestCase中的所有测试后如何调用函数?

时间:2019-01-24 19:57:46

标签: python python-unittest

我正在Python中运行一些单元测试,并且想在所有测试用例都运行完之后调用一个函数。

class MyTestCase(TestCase):
    def setUp(self):
        self.credentials = credentials

    def tearDown(self):
        print("finished running " + self._testMethodName)

    def tearDownModule(self):
        print("finished running all tests")

    def test_1(self):
        #do something

    def test_2(self):
        #do something else

setUp和tearDown在每个单独的测试之前和之后运行。但是我想在所有测试完成运行后调用一个函数(在本例中为test_1和test_2)。

从文档中看来,tearDownModule()函数应该可以执行此操作,但是似乎并未调用它。

1 个答案:

答案 0 :(得分:3)

tearDownModule用于模块范围,而不是方法。相反,您可能需要tearDownClass

class MyTestCase(TestCase):

    @classmethod
    def tearDownClass(cls):
        ...