我是python编程的新手,尤其是单元测试框架。由于某种原因使用 pyDev(py 3.1 解释器),我无法使用所有这些新的断言方法(如断言RegexpMatchs等)。
下面是一个示例代码:
类测试解析器(单元测试。测试用例):
def testskipCommentAndSpaces(self):
if os.path.isfile(sys.argv[1]):
#self.vmFilesListPath = sys.argv[1]
vmFilesListPath = sys.argv[1]
else:
#self.vmFilesListPath = get_all_vm_files(sys.argv[1])
vmFilesListPath = get_all_vm_files(sys.argv[1])
#parser = Parser(self.vmFilesListPath)
parser = Parser(vmFilesListPath)
commands = parser.getCommands()
for command in commands:
for token in commands:
p=re.search(r"(////)",str(token))
**self.assertNotRegexpMatches(str(token),p)**
我得到的是:属性错误:"TestParser"对象没有属性"assertNotRegexpMatches"不用说:hasattr(self,'assertNotRegexpMatches')返回false,而"简单"断言方法工作得很好。
我确定解释器设置为 3.1 - 即我需要的正确版本(因为我的系统上也安装了 py 2.7)。
会感谢您的帮助,伊戈尔·
虽然 Python 3.1 中的 unittest
模块有一个 assertRegexpMatches 方法,但没有记录assertNotRegexpMatches
。 在 Python 3.2 中,assertRegexpMatches
被重命名为 assertRegex,并添加了补充assertNotRegex
。
请注意,Python 3.1 已经过时,除了关键的安全修复程序外,不再维护。 Python 3.2 和现在刚刚发布的 3.3 中添加了许多功能、修复和主要性能改进。 考虑升级到其中之一。