unittest - langsam durch wiederholten Aufruf von setUp()
Verfasst: Mittwoch 30. April 2008, 13:28
Hoi,
ich habe mir das nie so klargemacht, aber bei
wird die Funktion setUp bei jedem Aufruf einer Testfunktion aufgerufen. Das war immer unproblematisch, weil es in der Regel wenig Zeit kostet. Jetzt aber möchte ich Platz sparen und daher die Zahl der Testdatensätze nicht zu sehr aufzublähen. Meine Lösung (hielt mich da für clever ): Ich lade nur wenige Datensätze in setUp ein und manipuliere diese mit bereits getesteten Funktionen so, daß die so generierten, neuen Datensätze für weitere Tests genügen. Aber das kostet Zeit. Das wäre kein Problem, wenn die Funktionen nur einmal pro Ableitung von unittest.TestCase aufgerufen würden, aber setUp() - und alle dort eingebetteten Funktionen - wird jedes Mal aufgerufen, wenn eine Testfunktion aufgerufen wird. Und so werden meine Tests derartig langsam, daß das Testen wirklich zu lange dauert.
Meine Frage also: Weiß jemand eine Lösung für das Dilemma?
N.B.: Ich versuche schon durch geeignete Aufteilung von Tests in versch. Skripte das Problem zu minimieren. Das macht die Sache a) unübersichtlicher und stößt b) an logische Grenzen: Ich brauche eine gewisse Zahl von Testfunktionen für jede zu testende Funktionen mit den gleichen Datensätzen.
Gruß,
Christian
ich habe mir das nie so klargemacht, aber bei
Code: Alles auswählen
import unittest
class TestClass(unittest.TestCase):
def setUp(self):
self.testobject = sometestobject
def test_X1(self):
testcode here
def test_X2(self):
testcode here
etc.
Meine Frage also: Weiß jemand eine Lösung für das Dilemma?
N.B.: Ich versuche schon durch geeignete Aufteilung von Tests in versch. Skripte das Problem zu minimieren. Das macht die Sache a) unübersichtlicher und stößt b) an logische Grenzen: Ich brauche eine gewisse Zahl von Testfunktionen für jede zu testende Funktionen mit den gleichen Datensätzen.
Gruß,
Christian