Для python 2.5, и при работе с pydev это немного сложно. Похоже, что pydev не использует набор тестов, но находит все отдельные тестовые случаи и запускает их все отдельно.
Мое решение для этого было использовать переменную класса, как это:
class TestCase(unittest.TestCase):
runCount = 0
def setUpClass(self):
pass # overridden in actual testcases
def run(self, result=None):
if type(self).runCount == 0:
self.setUpClass()
super(TestCase, self).run(result)
type(self).runCount += 1
С помощью этого трюка, когда вы наследуете от этого TestCase
(а не от исходного unittest.TestCase
), вы также наследуете runCount
от 0. Затем в методе run runCount
дочерний тестовый случай проверяется и увеличивается. Это оставляет переменную runCount
для этого класса в 0.
Это означает, что setUpClass
будет выполняться только один раз для каждого класса, а не один раз для каждого экземпляра.
У меня пока нет метода tearDownClass
, но я думаю, что-то можно сделать с помощью этого счетчика.