2012-04-11 11 views
0

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!

Antwort

Verwandte Themen