Eclipse和PyDev下Python单元测试异常运行
我创建了一个Pydev项目,按照这个结构:
- project_root/
|- setup.py
|- my_package/
|- __init__.py
|- my_module.py
|- tests/
|- __init__.py
|- test_my_module.py
在创建项目时,项目的根目录被添加到了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())
当我在Eclipse中运行测试(选择“运行方式” -> “Python单元测试”)时,使用了PyDev测试运行器和Nose测试运行器,结果都很好。
但是我也想从命令行运行,所以我进入了项目根目录,然后尝试了:
> 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版本安装的),Eclipse Helios,JDK 1.7,PyDev 2.2.3,Python 2.7.2,项目配置为在虚拟环境中运行,安装的虚拟环境版本是1.6.4,nose版本是1.1.2。
1 个回答
0
真奇怪。环境和设置都没有变化,但问题却消失了。
用nosetests或者unittest.discover从PyDev或者命令行运行测试都没问题……