python - python 3.1 unittest 中不可用的断言方法

标签 python assert unittest2

我是Python编程新手,尤其是单元测试框架。 由于某种原因使用 pyDev (py 3.1 解释器)我无法使用所有这些新功能 断言方法(例如assertRegexpMatches 等)。

这是一个示例代码:

类 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,而“简单”断言方法效果很好。

我确定解释器设置为 3.1 - 即我需要的正确版本(因为我的系统上还安装了 py 2.7)。

非常感谢您的帮助, 伊戈尔.L

最佳答案

虽然 Python 3.1 中的 unittest 模块有一个 assertRegexpMatches方法,没有记录的 assertNotRegexpMatches。在 Python 3.2 中,assertRegexpMatches 被重命名为 assertRegex并添加了补充的 assertNotRegex

请注意,Python 3.1 已过时,除了关键的安全修复之外不再进行维护。 Python 3.2 和刚刚发布的 3.3 中添加了许多功能、修复和重大性能改进。考虑升级到其中之一。

关于python - python 3.1 unittest 中不可用的断言方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12701627/

相关文章:

将值循环到变量中的 Pythonic 方式

python - Python-如何进行身份验证从AWS Lambda咨询Google Analytics(分析)?

c - 程序的奇怪响应

c - 带有消息的 assert()

python - 如何断言一个方法是用 python unittest 装饰的?

python - 如何让 unittest2 和 coverage.py 一起工作?

python - 语法错误: invalid syntax while trying to release webcam

python - 使用 drag_and_drop_by_offset 时抓取光标(Python/Selenium)

java - 两种断言

python - 如何在python setup.py test中使用unittest2