Parece que no puedo hacer que el marco de prueba de nariz reconozca los módulos debajo de mi script de prueba en la estructura de archivos. He creado el ejemplo más simple que demuestra el problema. Te lo explicaré a continuación.
Aquí está la estructura del archivo del paquete:
./__init__.py
./foo.py
./tests
./__init__.py
./test_foo.py
foo.py contiene:
def dumb_true():
return True
tests / test_foo.py contiene:
import foo
def test_foo():
assert foo.dumb_true()
Ambos archivos init .py están vacíos
Si ejecuto nosetests -vv
en el directorio principal (donde está foo.py), obtengo:
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)
Recibo el mismo error cuando ejecuto desde dentro del directorio tests /. De acuerdo con la documentación y un ejemplo que encontré, se supone que nose debe agregar todos los paquetes principales a la ruta, así como el directorio desde el que se llama, pero esto no parece estar sucediendo en mi caso.
Estoy ejecutando Ubuntu 8.04 con Python 2.6.2. He construido e instalado la nariz manualmente (no con setup_tools) si eso importa.