Python 使用PyDev测试运行程序失败
我已经在PyDev中创建了一个默认的单元测试模块。模块如下:Python 使用PyDev测试运行程序失败,python,unit-testing,pydev,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
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()
然后我使用“runas->Python单元测试”选项来执行单元测试。我在输出控制台中只看到以下两行:
正在查找文件。。。完成了
正在导入测试模块
然后什么也没有。Eclipse的行为就像测试正在执行一样,但实际上什么也没有发生。我可以点击“停止”按钮来终止测试,但如果我不这样做,什么也不会发生
注意,在搜索网络时,我发现上面的输出应该包括文件名和模块名(参见示例)
如果使用“runas->python Run”选项,测试将按预期执行。我确信我错过了一些关于使用PyDev test runner的东西,但是我不知道是什么
将test*函数名从
testName
更改为test\u name
并没有解决问题我认为(从内存操作)您应该在测试名称前面加上test\u前缀(需要下划线)。好的,我发现了问题
事实证明,我的模块的inititalization代码的几个部分依赖于解析sys.argv[0]
。当使用“runas->Python Run”作为sys.argv[0]
包含所执行程序的预期路径时,这种方法工作得很好。当使用“runas->Python单元测试”时,运行的程序是PyDev插件目录中的“runfiles.py”。这个意外的变化导致了一个无限循环,我将其解释为“什么也没发生”。我将把这种行为视为设计错误,并修改代码中有问题的部分