1

私はPythonプログラミング、特にユニットテストフレームワークが初めてです。何らかの理由で pyDev (py 3.1 インタープリター) を使用していると、これらの新しい assert メソッド (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' object has no attribute 'assertNotRegexpMatches'

インタープリターが 3.1 に設定されていると確信しています。つまり、必要な正しいバージョンです (システムに py 2.7 もインストールされているため)。

助けてくれてありがとう、Igor.L

4

1 に答える 1

3

unittestPython 3.1のモジュールにはassertRegexpMatchesメソッドがありましたが、文書化されassertNotRegexpMatchesた . Python 3.2 では、名前がassertRegexassertRegexpMatchesに変更され、補完が追加されました。assertNotRegex

Python 3.1 は廃止され、重要なセキュリティ修正以外は維持されていないことに注意してください。Python 3.2 には、多くの機能、修正、主要なパフォーマンスの改善が追加され、リリースされたばかりの 3.3 が追加されました。それらのいずれかにアップグレードすることを検討してください。

于 2012-10-03T04:58:51.630 に答える