为什么通过defaultTestLoader.loadTestsFromModule加载测试套件时,setUpClass函数未被调用?
背景: python 2.6.5 环境
我正在使用 unittest.defaultTestLoader.loadTestsFromModule(module)
来加载测试。
但是,当加载以下内容时,setUpClass
方法没有被执行。
class MyTest(unittest.TestCase):
foo = None
def test_choice(self):
self.logger.info(' .. %s' % str(Full.foo))
self.assertTrue(1 == 1)
@classmethod
def setUpClass(cls):
logging.warn('setUpClass')
cls.foo = settings.INITIAL
返回的测试套件显示它返回了:
<unittest.TestSuite
tests=[<unittest.TestSuite
tests=[<internal.tests.master.MyTest testMethod=test_choice>]>,
基本上,在 'test' 包下面,会有很多测试模块。我希望 setUpClass
和 tearDownClass
能在每个测试套件中都能正常工作。可是 loadTestsFromModule
并不能满足我的需求。有其他方法可以实现这个吗?
2 个回答
1
TestLoader.loadTestsFromModule 这个方法主要是用来加载你模块里的测试用例到一个测试套件中。如果你想要执行 setUpClass & tearDownClass
,那么你需要运行你的测试套件。
2
我升级到unittest2之后,现在可以正常工作了。