用鼻子测试。为什么我得到" ImportError:没有名为bin.app的模块"

时间:2015-07-21 16:35:22

标签: python

我目前正在学习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的模块

我做错了什么?

2 个答案:

答案 0 :(得分:4)

从目录结构中可以看出bin不是python包。它是一个包含app引用的名为app.py的python模块的目录。 Python包在文件夹中有一个__init__.py文件。我可以更详细地解释,但发布链接供你参考可能会更好。

http://docs.python-guide.org/en/latest/writing/structure/

答案 1 :(得分:1)

由于您的__init__.py目录中没有bin,因此它只是一个目录,而不是一个包。由于它不是包,因此您无法查看包以查找bin模块。

从您的父目录中,执行

touch bin/__init__.py

在Mac / Linux上,或

type NUL>bin\__init__.py
Windows上的