Eclipse和PyDev下Python单元测试异常运行

1 投票
1 回答
1659 浏览
提问于 2025-04-17 04:23

我创建了一个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或者命令行运行测试都没问题……

撰写回答