Saya tidak bisa mendapatkan kerangka pengujian hidung untuk mengenali modul di bawah skrip pengujian saya dalam struktur file. Saya telah menyiapkan contoh paling sederhana yang menunjukkan masalah tersebut. Saya akan menjelaskannya di bawah.
Berikut struktur file paketnya:
./__init__.py
./foo.py
./tests
./__init__.py
./test_foo.py
foo.py mengandung:
def dumb_true():
return True
tes / test_foo.py berisi:
import foo
def test_foo():
assert foo.dumb_true()
Kedua file init .py kosong
Jika saya menjalankan nosetests -vv
di direktori utama (di mana foo.py berada), saya mendapatkan:
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)
Saya mendapatkan kesalahan yang sama ketika saya menjalankan dari dalam direktori tes /. Menurut dokumentasi dan contoh yang saya temukan, nose seharusnya menambahkan semua paket induk ke jalur serta direktori tempat ia dipanggil, tetapi ini tampaknya tidak terjadi dalam kasus saya.
Saya menjalankan Ubuntu 8.04 dengan Python 2.6.2. Saya telah membangun dan menginstal nose secara manual (bukan dengan setup_tools) jika itu penting.