最佳答案
我似乎无法让 鼻子测试框架鼻子测试框架识别文件结构中测试脚本下面的模块。我已经建立了一个最简单的示例来演示这个问题。我在下面解释。
下面是软件包的文件结构:
./__init__.py
./foo.py
./tests
./__init__.py
./test_foo.py
foo.py contains:
def dumb_true():
return True
Test/test _ foo.py 包含:
import foo
def test_foo():
assert foo.dumb_true()
Both Init.py files are empty
如果在主目录(foo.py 所在的位置)中运行 nosetests -vv
,我会得到:
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)
当我从 test/目录中运行时,会得到相同的错误。根据我找到的文档和 一个例子,鼻子应该将所有父包添加到路径以及调用它的目录中,但是在我的例子中似乎没有发生这种情况。
我正在用 Python 2.6.2运行 Ubuntu 8.04。如果需要的话,我已经手动构建和安装了 nose (不是用 setup _ tools)。