self._outcome.result 获取上一条用例的执行结果怎么写一个跳过装饰器
时间: 2024-03-01 21:50:38 浏览: 29
如果你想在测试过程中跳过某些测试用例,可以使用 unittest 框架中的 @unittest.skip 装饰器。在使用 @unittest.skip 装饰器跳过测试用例时,上一条用例的执行结果可能会受到影响,因为跳过的测试用例不会被执行。如果你想获取跳过的测试用例的执行结果,可以使用 @unittest.skip 装饰器的 `reason` 参数来指定跳过该测试用例的原因。具体的代码如下:
```python
import unittest
class MyTests(unittest.TestCase):
def test_something(self):
# 这里是测试用例的代码
pass
@unittest.skip(reason="这个测试用例被跳过了")
def test_another_thing(self):
# 这里是测试用例的代码
pass
if __name__ == '__main__':
# 运行测试用例并获取 TestResult 对象
result = unittest.TextTestRunner().run(unittest.TestLoader().loadTestsFromTestCase(MyTests))
# 获取上一条用例的执行结果
last_result = result.failures[-1] if result.failures else result.errors[-1] if result.errors else None
```
这段代码中,我们在第二个测试用例上使用了 @unittest.skip 装饰器,并指定了跳过该测试用例的原因。在运行测试用例并获取 TestResult 对象后,我们可以通过 TestResult 对象的 failures 和 errors 属性来获取测试失败和错误的信息,从而获取上一条用例的执行结果。如果上一条用例执行成功,且没有其他测试用例被跳过或失败,那么 last_result 变量的值为 None。