当我通过defaultTestLoader.loadTestsFromModule加载测试套件时,为什么没有调用我的setUpClass函数?

时间:2012-01-17 08:58:39

标签: python

上下文: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&amp; tearDownClass适用于每个测试套件。 loadTestsFromModule不符合我的要求。还有其他方法可以实现这一目标吗?

2 个答案:

答案 0 :(得分:2)

升级到使用unittest2后,它现在可以正常工作。

答案 1 :(得分:1)

TestLoader.loadTestsFromModule方法仅用于加载您的模块中的测试用例到测试套件中,如果您需要setUpClass & tearDownClass,您应该run您的测试套件被执行。