Je n'arrive pas à faire en sorte que le framework de test du nez reconnaisse les modules sous mon script de test dans la structure de fichiers. 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 du 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 fichiers init .py sont vides
Si je cours nosetests -vv
dans le répertoire principal (où se trouve foo.py), 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)
J'obtiens la même erreur lorsque je cours depuis le répertoire tests /. D'après la documentation et un exemple que j'ai trouvé, nose est censé ajouter tous les packages parents au chemin ainsi que le répertoire à partir duquel il est appelé, mais cela ne semble pas se produire dans mon cas.
J'utilise Ubuntu 8.04 avec Python 2.6.2. J'ai construit et installé le nez manuellement (pas avec setup_tools) si cela compte.