Модульный тест Python, запускающий странность с Eclipse и PyDev - PullRequest
1 голос
/ 15 октября 2011

Я создал проект 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.

1 Ответ

0 голосов
/ 16 октября 2011

Как странно.Ничего не изменилось в среде или настройках, но проблема исчезла.

Выполнение тестов с использованием носовых тестов или unittest.discover из PyDev или из командной строки работает нормально ...

...