单元测试失败时执行操作

时间:2012-09-11 10:04:53

标签: python unit-testing python-3.x

我正在使用unittest

如果我在测试用例中的测试失败,我喜欢做某事(例如,将错误的输出保存到临时文件夹以供以后查看,等等)。

此代码属于哪里?

起初,我以为我可以检查if self.assertEqual(...),但事实证明这个函数没有返回任何值。它现在有意义,因为它一旦检测到故障就会将执行从测试功能中拉出来。

无论测试成功与否,都会调用<{tearDown,因此它似乎也无济于事。

1 个答案:

答案 0 :(得分:2)

一种方法是在测试用例实例上设置一个标志,然后在拆除时检查其值:

def setUp(self):
    self.test_passed = false

def tearDown(self):
    if not self.test_passed:
        log()

def test_something(self):
    self.assertEquals(something())
    self.test_passed = true

您可以编写一个装饰器,以避免在每次测试结束时将标志设置为true。