我目前正在学习Python The Hard Way的最后一次练习(EX52),我正在使用Nose来测试代码(练习是扩展Nose测试以测试更多代码)。
这是我的文件结构
bin
app.py
gothonweb
__init__.py
map.py
sessions
tests
map_tests.py
app_tests.py
示例代码使用map_tests.py代码测试map.py文件。
from nose.tools import *
from gothonweb.map import *
def test_room():
central_corridor = Room("Central Corridor" ...
所以我想我通过创建第二个测试app.py文件的app_tests.py测试文件来扩展它。它包含此代码
from nose.tools import *
from bin.app import *
def test():
pass
当我运行nosetests时出现此错误: ImportError:没有名为bin.app的模块
我做错了什么?
答案 0 :(得分:4)
从目录结构中可以看出bin
不是python包。它是一个包含app
引用的名为app.py
的python模块的目录。 Python包在文件夹中有一个__init__.py
文件。我可以更详细地解释,但发布链接供你参考可能会更好。
答案 1 :(得分:1)
由于您的__init__.py
目录中没有bin
,因此它只是一个目录,而不是一个包。由于它不是包,因此您无法查看包以查找bin
模块。
从您的父目录中,执行
touch bin/__init__.py
在Mac / Linux上,或
type NUL>bin\__init__.py
Windows上的