Python setUpClass是否可以在unnitest框架中扩展?

Python setUpClass是否可以在unnitest框架中扩展?,python,python-unittest,Python,Python Unittest,setUpClass是否可以在unnitest框架中扩展 定义扩展unnitest.TestCase的Base1,Base1具有setUpClass方法 import unittest class Base1(unittest.TestCase): @classmethod def setUpClass(cls): print('setupClass - this is Base1') @classmethod def tearDownClass(cls): print('t

setUpClass是否可以在unnitest框架中扩展

定义扩展unnitest.TestCase的Base1,Base1具有setUpClass方法

import unittest
class Base1(unittest.TestCase):

@classmethod
def setUpClass(cls):
    print('setupClass - this is Base1')

@classmethod
def tearDownClass(cls):
    print('tearDownClass - this is Base1')
定义扩展Base1类的Base2

from Base1 import Base1
import unittest

class Base2(Base1):

@classmethod
def setUpClass(cls):
    print('setupClass - this is Base2')

@classmethod
def tearDownClass(cls):
    print('tearDownClass - this is Base2')

def test_default_size(self):
    self.assertEqual('a','a')

def test_resize(self):
    self.assertEqual('a','b')

我希望在Base2中的所有测试用例之前执行Base1中的setUpClass和Base2中的setUpClass,这可能吗

您必须显式调用
setUpClass
tearDownClass

class Base2(Base1):
    @classmethod
    def setUpClass(cls):
        print('setupClass - this is Base2')
        super(Base2, cls).setUpClass()

    @classmethod
    def tearDownClass(cls):
        print('tearDownClass - this is Base2')
        super(Base2, cls).tearDownClass()
但是,如果不向这些类方法添加,则可以跳过定义它们:

class Base3(Base1):, 
    def test1(self):
        print('test1')

在这种情况下,将隐式调用
Base1
中的
setUpClass
tearDownClass

请参见此处的继承文档