【问题标题】:Python unit-test running oddity with Eclipse and PyDev使用 Eclipse 和 PyDev 进行 Python 单元测试运行异常
【发布时间】: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


【解决方案1】:

多么奇怪。环境或设置没有任何变化,但问题消失了。

从 PyDev 或命令行使用 nosetests 或 unittest.discover 运行测试工作正常...

【讨论】:

    猜你喜欢
    • 2010-11-04
    • 1970-01-01
    • 1970-01-01
    • 2012-08-31
    • 1970-01-01
    • 1970-01-01
    • 2011-07-19
    • 1970-01-01
    • 2015-07-08
    相关资源
    最近更新 更多