2011-07-25 44 views
1

我在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例如)

如果我使用“运行 - >蟒蛇运行”选项,测试按预期执行。我相信我错过了使用PyDev测试运行器的一些信息,但无法找到答案。

改变测试*函数名从testNametest_name没有解决问题

回答

0

好的,我发现了这个问题。

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

0

我认为(从内存中运行),你应该前缀TEST_测试名称(下划线的要求)。

+0

不,没有帮助 –

相关问题