python - 每当单元测试失败时执行操作

标签 python unit-testing python-3.x

我正在使用unittest

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

这段代码属于哪里?

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

无论测试是否成功,都会调用tearDown,因此它似乎也没有帮助。

最佳答案

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

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。

关于python - 每当单元测试失败时执行操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12367299/

相关文章:

python - 如何根据字符串特定位置中特定字符的存在,删除等长字符串列表的成员?

Angular 单元测试 : how to use marble testing (rxjs/testing) to test this state management service

python - 将文件存储为整数矩阵的有效方法

python - "uses"和 "rebinds"变量的含义和区别是什么?

python - 将参数传递给 Ansible 动态 list

python - 计算整数 n 和 b 的 log(n,b) 底数的更好方法?

Python 连接 Oracle 数据库

java - 使用 `verify` 显式检查函数调用参数或使用 `when` 隐式检查函数调用参数?

javascript - Angular 单元测试 Controller $scope长度

python - 'from dot import asterisk' 在 Python 3 中有什么作用?