unittest.expectedFailure
装饰器似乎改变了Python 3.3和3.4之间的行为,但我找不到任何有关该更改的文档。
问题是,以下导致Python 3.4.1测试失败,但不适用于Python 2.7或3.3(所有在debian系统上):
import unittest
@unittest.expectedFailure
class TestA(unittest.TestCase):
def test_me(self):
raise Exception('no')
unittest.main()
请注意,这只是演示此问题的简短示例脚本。在实际的测试套件中,我无法检查异常,但依赖expectedFailure在某些情况下通过某些测试。
答案 0 :(得分:1)
这是Python 3.4.0到3.4.3 中的回归错误 #21112: Python 3.4 regression: unittest.expectedFailure no longer works on TestCase subclasses,因为unittest在3.4中已经过硬重构,在3.4中修复了。 4(v3.4.4rc1 by commit ed599b7)