我是python编程的新手,尤其是单元测试框架。 由于某些原因使用pyDev(py 3.1解释器),我不能使用所有这些新的 断言方法(例如assertRegexpMatches等..)。
以下是一个示例代码:
class TestParser(unittest.TestCase):
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)**
我得到的是:AttributeError:' TestParser'对象没有属性' assertNotRegexpMatches' 毋庸置疑:hasattr(self,' assertNotRegexpMatches')返回false,而#34; simple"断言方法运作良好。
我确定解释器设置为3.1 - 即我需要的正确版本(因为我的系统上也安装了py 2.7)。
谢谢你的帮助, Igor.L
答案 0 :(得分:3)
虽然Python 3.1中的unittest
模块有assertRegexpMatches方法,但没有记录assertNotRegexpMatches
。在Python 3.2中,assertRegexpMatches
已重命名为assertRegex,并添加了补充assertNotRegex
。
请注意,Python 3.1已过时,除了重要的安全修复程序之外不再维护。 Python 3.2和现在3.3中添加了许多功能,修复和主要性能改进,刚刚发布。考虑升级到其中一个。