【发布时间】:2011-12-08 09:43:25
【问题描述】:
我已经按照这个布局创建了一个 Pydev 项目:
- project_root/
|- setup.py
|- my_package/
|- __init__.py
|- my_module.py
|- tests/
|- __init__.py
|- test_my_module.py
project_root 目录在项目创建期间添加到 PYTHONPATH。
my_package/my_module.py 文件有一个类:
class MyClass(object):
def my_method(self):
return 1
my_package/tests/test_my_module.py 应该包含这个模块的测试用例:
import unittest
from my_package.my_module import MyClass
class MyClassTestCase(unittest.TestCase):
def test_my_method(self):
my_object = MyClass()
self.assertEqual(1, my_object.my_method())
当我使用 PyDev 测试运行器和 Nose 测试运行器从 Eclipse(运行方式 --> Python 单元测试)中运行测试时,它运行良好。
但我也想从命令行运行它,所以我 cd 到 project_root 并尝试:
> set PYTHONPATH=full/path/to/project_root
> nosetests --verbosity 2
...
ImportError: No module named my_module
> python -m unittest discover
...
ImportError: No module named my_module
知道可能是什么问题吗?
我的环境详情: Windows 7 x64(但所有相关应用程序都安装为 x86 应用程序),带有 JDK 1.7 和 PyDev 2.2.3 的 Eclipse Helios,Python 2.7.2,配置为在 virtualenv 中运行的项目,安装的 virtualenv 是 1.6.4,nose 1.1.2。
【问题讨论】:
-
你能从 python shell 中导入那个模块吗?
标签: python eclipse unit-testing pydev nose