Tôi dường như không thể có được khung kiểm tra mũi để nhận ra các mô-đun bên dưới tập lệnh thử nghiệm của tôi trong cấu trúc tệp. Tôi đã thiết lập một ví dụ đơn giản nhất chứng minh vấn đề. Tôi sẽ giải thích nó dưới đây.
Đây là cấu trúc tệp gói:
./__init__.py
./foo.py
./tests
./__init__.py
./test_foo.py
foo.py chứa:
def dumb_true():
return True
tests / test_foo.py chứa:
import foo
def test_foo():
assert foo.dumb_true()
Cả hai tệp init .py đều trống
Nếu tôi chạy nosetests -vv
trong thư mục chính (nơi có foo.py), tôi nhận được:
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)
Tôi gặp lỗi tương tự khi chạy từ bên trong thư mục tests /. Theo tài liệu và một ví dụ tôi tìm thấy, mũi được cho là thêm tất cả các gói mẹ vào đường dẫn cũng như thư mục mà từ đó nó được gọi, nhưng điều này dường như không xảy ra trong trường hợp của tôi.
Tôi đang chạy Ubuntu 8.04 với Python 2.6.2. Tôi đã xây dựng và cài đặt mũi theo cách thủ công (không phải với setup_tools) nếu điều đó quan trọng.