Pyunit пропускает методы setUp и tearDown для теста

Можно ли пропустить функции setUp и tearDown для теста..? Пожалуйста, дайте мне знать, как это сделать. Спасибо


person user2511126    schedule 03.03.2014    source источник


Ответы (1)


Единственный способ сделать это без написания другого тестового класса с другими методами setUp и tearDown, по-видимому, состоит в том, чтобы перезаписать метод run из TestCase. Вы можете либо полностью переписать его, либо попробовать эту более короткую версию (только для setUp, но вы можете легко расширить ее и для поддержки tearDown):

class MyTestCase(unitest.TestCase):
    def run(self, result=None):
        if self._testMethodName == 'testWithoutSetup':
            (old_setUp, self.setUp) = (self.setUp, lambda : None)
            try:
                super(MyTestCase, self).run(result)
            finally:
                self.setUp = old_setUp
        else:
            super(MyTestCase, self).run(result)

Что я делаю, так это проверяю, называется ли тестируемый метод testWithoutSetup, и если это так, я временно заменяю метод setUp функцией, которая ничего не делает.

Обратите внимание, что я тестировал только Python 3.3, и он может работать только для этой версии.

person Valentin Lorentz    schedule 03.03.2014
comment
о, да, понял. У меня есть еще один вопрос, который я разместил здесь ссылка, если бы кто-нибудь мог ответить, что это действительно полезно. благодарю вас - person user2511126; 04.03.2014