Я создал проект 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())
Когда я запускал тесты из Eclipse (Run As -> Python unit-test) с помощью PyDev Test Runner и Nose test runner - это работало хорошо.
Но я также хотел запустить его из командной строки, поэтому я перешел в 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.