【发布时间】:2016-12-29 17:07:24
【问题描述】:
(在 Debian Linux 上使用 bash 命令行,Python 2.7.12。)
按照 Zed Shaw 的 LPTHW,我构建了一个有助于测试软件的项目框架。首先是大纲。
设置:
bin docs first_project setup.py tests
./bin:
./docs:
./first_project:
__init__.py wasp.py
./tests:
first_project_tests.py __init__.py
wasp.py 的内容:
def paint(color):
print color * 10
first_projects_tests.py 的内容:
from nose.tools import *
from first_project import wasp
def test_paint():
wasp.paint("blue")
根据我对 Zed Shaw 解释的理解,first_project 目录中的__init__.py 告诉 Python,其中的文件可以作为模块导入。因此 test 目录中的脚本 first_project_tests.py 从 first_project 目录中导入了 wasp.py 模块,并从中调用了paint函数。
按照 Shaw 的指示,我从测试目录上方运行了 nosetests,我得到了零错误的 ok。
然后我切换到测试目录并从命令行键入 python first_project_tests.py,假设我能够毫无问题地运行脚本,因为 nosetests 命令没有给出错误。
我收到以下错误:
Traceback (most recent call last):
File "first_project_tests.py", line 2, in <module>
from first_project import wasp
ImportError: No module named first_project
那么为什么鼻子测试没有返回错误时 first_project_tests.py 脚本会失败?
【问题讨论】:
标签: linux python-2.7 nose