Ich kann das Nasentest-Framework anscheinend nicht dazu bringen , Module unter meinem Testskript in der Dateistruktur zu erkennen. Ich habe das einfachste Beispiel erstellt, das das Problem demonstriert. Ich werde es unten erklären.
Hier ist die Struktur der Paketdatei:
./__init__.py
./foo.py
./tests
./__init__.py
./test_foo.py
foo.py enthält:
def dumb_true():
return True
tests / test_foo.py enthält:
import foo
def test_foo():
assert foo.dumb_true()
Beide init .py-Dateien sind leer
Wenn ich nosetests -vv
im Hauptverzeichnis (wo foo.py ist) laufe, bekomme ich:
Failure: ImportError (No module named foo) ... ERROR
======================================================================
ERROR: Failure: ImportError (No module named foo)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/usr/lib/python/site-packages/nose-0.11.1-py2.6.egg/nose/loader.py", line 379, in loadTestsFromName
addr.filename, addr.module)
File "/usr/lib/python/site-packages/nose-0.11.1-py2.6.egg/nose/importer.py", line 39, in importFromPath
return self.importFromDir(dir_path, fqname)
File "/usr/lib/python/site-packages/nose-0.11.1-py2.6.egg/nose/importer.py", line 86, in importFromDir
mod = load_module(part_fqname, fh, filename, desc)
File "/home/user/nose_testing/tests/test_foo.py", line 1, in <module>
import foo
ImportError: No module named foo
----------------------------------------------------------------------
Ran 1 test in 0.002s
FAILED (errors=1)
Ich erhalte den gleichen Fehler, wenn ich aus dem Verzeichnis tests / heraus laufe. Gemäß der Dokumentation und einem Beispiel, das ich gefunden habe, soll nas alle übergeordneten Pakete zum Pfad sowie zu dem Verzeichnis hinzufügen, aus dem es aufgerufen wird, aber dies scheint in meinem Fall nicht zu geschehen.
Ich verwende Ubuntu 8.04 mit Python 2.6.2. Ich habe die Nase manuell gebaut und installiert (nicht mit setup_tools), wenn das wichtig ist.