使用PyDev测试运行器失败

时间:2011-07-25 13:02:57

标签: python unit-testing pydev

我在PyDev中创建了一个默认的单元测试模块。该模块如下:

import unittest
class Test(unittest.TestCase):
    def setUp(self):
        pass


    def tearDown(self):
        pass


    def testName(self):
        self.assertEqual(1, 2) #here I expect to see failure message


if __name__ == "__main__":
    #import sys;sys.argv = ['', 'Test.testName']
    unittest.main()

然后我使用“运行为 - > Python单元测试”选项来执行单元测试。我在输出控制台中看到的只有以下两行:

  

查找文件......完成。

     

导入测试模块......

然后什么都没有。 Eclipse的行为就好像正在执行测试一样,但实际上并没有发生任何事情。我可以点击“停止”按钮以终止测试,但是如果我没有发生任何事情。

注意在搜索网络时,我发现上面的输出应包含文件和模块名称(例如,请参阅this discussion

如果我使用“Run as - > python run”选项,则按预期执行测试。我确信我错过了使用PyDev测试运行器的一些内容,但无法找到答案。

将测试*函数名称从testName更改为test_name并未解决问题

2 个答案:

答案 0 :(得分:0)

我认为(在内存中运行)你应该在测试名称前加上test_(需要下划线)。

答案 1 :(得分:0)

好的,我发现了问题。

事实证明,我的模块的初始化代码的几个部分依赖于解析sys.argv[0]。当使用“Run As - > Python Run”时,这种方法很好,因为sys.argv[0]包含执行程序的预期路径。使用“Run As - > Python单元测试”时,正在运行的程序是PyDev插件目录中的“runfiles.py”。这种意外的变化引起了无限循环,我将其解释为“没有任何反应”。我会将此行为视为设计错误,并修改我的代码中有问题的部分。

相关问题