unittest获取上一个测试 用例执行结果,写到下一个用例的修饰器中判断是否要跳过
时间: 2024-02-28 10:54:38 浏览: 127
你可以使用`skipIf`装饰器,将前一个测试用例的执行结果作为判断条件,如果前一个测试用例失败,则跳过当前测试用例。
下面是一个示例代码:
```python
import unittest
class MyTest(unittest.TestCase):
previous_result = None
def test_1(self):
self.assertEqual(1 + 1, 2)
self.previous_result = 'pass'
@unittest.skipIf(previous_result != 'pass', 'Previous test case failed')
def test_2(self):
self.assertEqual(2 + 2, 4)
```
在上面的代码中,我们使用`skipIf`装饰器来判断前一个测试用例的执行结果是否成功。如果前一个测试用例的结果为`'pass'`,则当前测试用例会被执行;否则,当前测试用例会被跳过,跳过的原因为`'Previous test case failed'`。
需要注意的是,如果前一个测试用例的结果是`None`,则当前测试用例也会被跳过,因为`skipIf`的判断条件为`previous_result != 'pass'`,而`None`不等于`'pass'`。如果前一个测试用例的结果可能为`None`,则需要对`skipIf`的判断条件进行修改,例如改为`previous_result is not None and previous_result != 'pass'`。
阅读全文