Ich habe derzeit einige Unit-Tests, die eine gemeinsame Reihe von Tests teilen. Hier ist ein Beispiel:
import unittest
class BaseTest(unittest.TestCase):
def testCommon(self):
print 'Calling BaseTest:testCommon'
value = 5
self.assertEquals(value, 5)
class SubTest1(BaseTest):
def testSub1(self):
print 'Calling SubTest1:testSub1'
sub = 3
self.assertEquals(sub, 3)
class SubTest2(BaseTest):
def testSub2(self):
print 'Calling SubTest2:testSub2'
sub = 4
self.assertEquals(sub, 4)
if __name__ == '__main__':
unittest.main()
Die Ausgabe der oben genannten ist:
Calling BaseTest:testCommon
.Calling BaseTest:testCommon
.Calling SubTest1:testSub1
.Calling BaseTest:testCommon
.Calling SubTest2:testSub2
.
----------------------------------------------------------------------
Ran 5 tests in 0.000s
OK
Gibt es eine Möglichkeit, das Obige so umzuschreiben, dass das allererste testCommon
nicht aufgerufen wird?
BEARBEITEN: Anstatt 5 Tests oben auszuführen, möchte ich, dass nur 4 Tests ausgeführt werden, 2 vom SubTest1 und weitere 2 vom SubTest2. Es scheint, dass Python unittest den ursprünglichen BaseTest alleine ausführt, und ich brauche einen Mechanismus, um dies zu verhindern.