我按照这种布局创建了一个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(Run As - > Python单元测试)中运行测试时 - 它运行良好。
但是我也想从命令行运行它,所以我进入了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应用程序),Eclipse Helios与JDK 1.7和PyDev 2.2.3,Python 2.7.2,项目配置为在virtualenv中运行,安装virtualenv是1.6.4,鼻子1.1.2。< / p>
答案 0 :(得分:0)
使用nosetests或unittest.discover从PyDev或命令行运行测试工作正常......