Ich habe Probleme beim Erstellen einer Testsuite in Django 1.3.Kann keine Testsuite für Django erstellen
Angenommen, ich habe eine installierte App in einem Verzeichnis namens app_name
. Eine der Dateien in diesem Verzeichnis ist foo.py
, die eine Klasse namens Foo
definiert. Ich möchte das testen, also habe ich auch eine Datei mit dem Namen foo_test.py
, die eine Klasse namens FooTest
definiert. Diese Datei wie folgt aussieht:
import unittest
import foo
class FooTest(unittest.TestCase):
def setUp(self):
self.foo_instance = foo.Foo()
... etc
nun auf der ganzen Linie I andere Testfälle in anderen Dateien haben werden, und ich werde sie alle als Teil einer Testsuite ausführen möchten. So habe ich im selben Verzeichnis app_name
eine Datei tests.py
erstellt, die die Suite definieren wird. Zunächst definiert Ich mag es:
import foo_test
from django.test.simple import DjangoTestSuiteRunner
def suite():
runner = DjangoTestSuiteRunner()
return runner.build_suite(['app_name'])
Leider ist dies fehlschlägt, weil runner.build_suite(['app_name'])
sucht app_name
für eine tests.py
Datei aufrufen, führt suite()
, und dies auch weiterhin rekursiv, bis der Python-Interpreter alles für die Überschreitung der maximalen Rekursionstiefe stoppt.
Ändern runner.build_suite(['app_name'])
zu
runner.build_suite(['app_name.foo_test'])
oder
runner.build_suite(['app_name.foo_test.FooTest'])
führt zu Fehlern wie ValueError: Test label 'app_name.foo_test' does not refer to a test
.
Und es verändert sich:
runner.build_suite(['foo_test'])
oder
runner.build_suite(['foo_test.FooTest'])
führt zu Fehlern wie App with label foo_test could not be found
.
Ich bin an dieser Stelle irgendwie Ideen aus. Jede Hilfe würde sehr geschätzt werden. Vielen Dank!