unittest tearDown

时间:2016-02-23 15:49:20

标签: python python-unittest

我有一个Python单元测试,在拆解过程中失败了。这是目前的预期失败。我正在使用Python 2.7中的标准unittest库。

#!/usr/bin/env python2
import unittest

class MCVE(unittest.TestCase):
    def setUp(self):
        self.invariant = True
    def tearDown(self):
        self.assertTrue(self.invariant)
    @unittest.expectedFailure
    def test1(self):
        self.invariant = False

if __name__ == '__main__':
    unittest.main()

因为在拆卸过程中发生了故障,expectedFailure装饰器会导致测试用例是否成功引起一些混淆:它们都被报告为意外成功(因为测试用例本身没有失败)并且是意外的失败(因为拆解失败)。

uE
======================================================================
ERROR: test1 (__main__.MCVE)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "./a.py", line 8, in tearDown
    self.assertTrue(self.invariant)
AssertionError: False is not true

----------------------------------------------------------------------
Ran 1 test in 0.001s

FAILED (errors=1, unexpected successes=1)

我不想将不变检查移出拆解,因为需要对所有测试执行。另一方面,我希望尽可能明显地预测这个测试用例会失败,而不需要修改测试用例(现在很好)。我宁愿不跳过测试,因为如果它意外地成功,那可能表明另一个错误。理想情况下,我想保留装饰器机制,并调整装饰器或拆卸代码或两者。

如何在拆解期间为测试用例注释显式失败?

0 个答案:

没有答案