在python2.7和3.4中检查测试中的错误消息

时间:2016-02-26 14:18:55

标签: python-2.7 python-3.4 python-unittest

我需要使用unittest编写测试来检查错误消息的内容。这个测试需要适用于python2.7和python3.4。最初,我的测试看起来像这样:

class MyFuncTestCaes(TestCase)
    def test_my_func(self):
        with self.assertRaises(TypeError) as context:
            my_func()
        self.assertIn("some message", context.exception.message

这适用于Python2.7,但不适用于Python3.4 - message上似乎不再有exception属性。如何修改此测试以使其适用于两个版本的Python?

1 个答案:

答案 0 :(得分:0)

想出来。 assertRaisesRegexp适用于Python2.7和Python3.4,所以我可以做,确保转义我需要检查的字符串:

class MyFuncTestCaes(TestCase)
    def test_my_func(self):
        with self.assertRaisesRegexp(TypeError, re.escape("some message")) as context:
            my_func()