für eine Reihe von zusammengehörigen Tests habe ich eine Klasse von unittest.TestCase abgeleitet, wobei ich für jeden einzelnen Test eine eigene Testmethode vorgesehen habe. Das ganze sieht verkürzt also etwa so aus.
Code: Alles auswählen
class ExportTest(unittest.TestCase):
def test_db_export_raw_with_wildcard_formatted(self):
def test_db_export_raw_with_wildcard_unformatted(self):
def test_db_export_raw_projection_formatted(self):
Gibt es eine Möglichkeit, setUp()- und tearDown()-Funktionalität so zu definieren, dass sie pro Testklasse nur einmal aufgerufen werden? Ich habe das jetzt erstmal durch statische Klassenvariablen gelöst:
Code: Alles auswählen
class ExportTest(unittest.TestCase):
setUpDone = False
def __init__(self, method):
self.currentMethod = method
unittest.Test.__init__(method)
def setUp(self):
if not ExportTest.setUpDone:
ExportTest.setUpDone = True
# import test data
def tearDown(self):
if self.lastTest():
# restore original DB contents
Obwohl das funktioniert, erscheint mir das etwas umständlich, bzw. ich habe das Gefühl, am Framework vorbeizuprogrammieren. Hat jemand Vorschläge, wie ich das Verfahren vereinfachen könnte? Ist unittest für so etwas überhaupt das richtige Werkzeug?
Danke im Voraus
ws
P.S.: @Gerold: Danke für den Hinweis auf das Code-Highlighting, ich hatte mich schon gefragt, wie die anderen Poster das 'reingekriegt haben