Ich habe eine Pylons 1.0-App mit einer Reihe von Tests im Verzeichnis test / function. Ich erhalte seltsame Testergebnisse und möchte nur einen einzigen Test ausführen. Die Nasen-Dokumentation besagt, dass ich in der Lage sein sollte, einen Testnamen über die Befehlszeile zu übergeben, aber ich erhalte ImportErrors, egal was ich tue
Beispielsweise:
nosetests -x -s sometestname
Gibt:
Traceback (most recent call last):
File "/home/ben/.virtualenvs/tsq/lib/python2.6/site-packages/nose-0.11.4-py2.6.egg/nose/loader.py", line 371, in loadTestsFromName
module = resolve_name(addr.module)
File "/home/ben/.virtualenvs/tsq/lib/python2.6/site-packages/nose-0.11.4-py2.6.egg/nose/util.py", line 334, in resolve_name
module = __import__('.'.join(parts_copy))
ImportError: No module named sometestname
Ich bekomme den gleichen Fehler für
nosetests -x -s appname.tests.functional.testcontroller
Was ist die richtige Syntax?
appname.tests.functional.test_controller.name_of_test_method
.module.path:ClassNameInFile.method_name
, dh einen Doppelpunkt, der den Modul- / Dateipfad und die Objekte in der Datei trennt.module.path
ist der relative Pfad zur Datei (z. B.my_tests.py:ClassNameInFile.method_name
), nicht der Pfad, den Sie in einerimport
Anweisung verwenden würdenBei Verwendung von Nosetests 1.3.0 funktionieren diese Varianten (stellen Sie jedoch sicher, dass Sie sie
__init__.py
in Ihrem Testordner haben ):Beachten Sie den einzelnen Doppelpunkt zwischen Modulname und Klassenname.
quelle
Ich muss die Dateierweiterung ".py" hinzufügen, d. H.
Vielleicht liegt das daran, dass ich keine Klassen in der Datei habe. Ohne die
.py
beschwerte sich die Nase:Und das obwohl ich einen
__init__.py
im Ordner habe/path_to/
.quelle
Ich habe dieses kleine Skript basierend auf den vorherigen Antworten geschrieben:
quelle
Folgendes hat bei mir einfach gut funktioniert:
Beachten Sie, dass meine Tests nicht in einer Klasse waren. Die Testmethoden befanden sich in einer einzigen Datei.
quelle