2

我正在使用unittest.

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

这段代码属于哪里?

起初,我以为我可以检查if self.assertEqual(...),但事实证明这个函数没有返回任何值。现在这是有道理的,因为它旨在一旦检测到故障就将执行踢出测试功能。

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

4

1 回答 1

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。

于 2012-09-11T10:11:56.807 回答