ดูเหมือนจะไม่สามารถรับกรอบการทดสอบจมูกได้เพื่อจดจำโมดูลใต้สคริปต์ทดสอบของฉันในโครงสร้างไฟล์ได้ ฉันได้สร้างตัวอย่างที่ง่ายที่สุดที่แสดงให้เห็นถึงปัญหา ฉันจะอธิบายไว้ด้านล่าง
นี่คือโครงสร้างไฟล์แพ็คเกจ:
./__init__.py
./foo.py
./tests
./__init__.py
./test_foo.py
foo.py ประกอบด้วย:
def dumb_true():
return True
การทดสอบ / test_foo.py ประกอบด้วย:
import foo
def test_foo():
assert foo.dumb_true()
ทั้งสอง ไฟล์init. pyว่างเปล่า
หากฉันรันnosetests -vv
ในไดเร็กทอรีหลัก (โดยที่ foo.py อยู่) ฉันจะได้รับ:
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)
ฉันได้รับข้อผิดพลาดเดียวกันเมื่อฉันเรียกใช้จากภายในไดเรกทอรีการทดสอบ / ตามเอกสารและตัวอย่างที่ฉันพบจมูกควรจะเพิ่มแพ็กเกจพาเรนต์ทั้งหมดลงในพา ธ รวมถึงไดเร็กทอรีที่เรียกใช้ แต่ดูเหมือนจะไม่เกิดขึ้นในกรณีของฉัน
ฉันใช้ Ubuntu 8.04 พร้อม Python 2.6.2 ฉันได้สร้างและติดตั้งจมูกด้วยตนเอง (ไม่ใช่ด้วย setup_tools) หากเป็นเช่นนั้น