Je n'arrive pas à obtenir le nez cadre des tests de reconnaître les modules sous mon script de test dans la structure du fichier. J'ai mis en place l'exemple le plus simple qui illustre le problème. Je vais l'expliquer ci-dessous.
Voici la structure du fichier package:
./__init__.py
./foo.py
./tests
./__init__.py
./test_foo.py
foo.py contient:
def dumb_true():
return True
tests/test_foo.py contient:
import foo
def test_foo():
assert foo.dumb_true()
Les deux init.py fichiers sont vides
Si j'exécute nosetests -vv
dans le répertoire principal (où foo.py est), j'obtiens:
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)
Je reçois le même message d'erreur quand je le lance à partir de l'intérieur du répertoire tests/. D'après la documentation et un exemple que j'ai trouvé, le nez est censé ajouter tous les packages de parent pour le chemin d'accès ainsi que le répertoire à partir duquel il est appelé, mais cela ne semble pas être le cas dans mon cas.
Je suis sur Ubuntu 8.04 avec Python 2.6.2. J'ai construit et installé nez manuellement (pas avec setup_tools) si ce qui compte.