unittest用例跳过
时间: 2023-09-08 07:14:59 浏览: 166
Django unittest 设置跳过某些case的方法
在编写测试用例时,有时候我们会遇到一些无法执行的情况,比如某些测试用例需要依赖于外部环境或者数据,而这些依赖项可能并不是每次都可用。这时候,我们可以使用 `@unittest.skip(reason)` 或 `@unittest.skipIf(condition, reason)` 或 `@unittest.skipUnless(condition, reason)` 装饰器来跳过这些测试用例。
- `@unittest.skip(reason)`:无条件跳过该测试用例;
- `@unittest.skipIf(condition, reason)`:当 `condition` 为 `True` 时跳过该测试用例;
- `@unittest.skipUnless(condition, reason)`:当 `condition` 为 `False` 时跳过该测试用例。
其中,`reason` 参数是可选的,表示跳过测试用例的原因,会在测试报告中显示。下面是一个示例:
```python
import unittest
class MyTestCase(unittest.TestCase):
def test_something(self):
# 这个测试用例会被跳过,原因是不依赖于某些必要的外部条件
self.skipTest("Not implemented yet")
@unittest.skip("demonstrating skipping")
def test_nothing(self):
# 这个测试用例会被无条件跳过
self.fail("shouldn't happen")
@unittest.skipIf(True, "skipping due to condition")
def test_skip_if(self):
# 当条件为 True 时,这个测试用例会被跳过
self.assertEqual(1 + 1, 3)
@unittest.skipUnless(False, "skipping unless condition is False")
def test_skip_unless(self):
# 当条件为 False 时,这个测试用例会被跳过
self.assertEqual(2 * 2, 5)
```
在上面的例子中,`test_something` 测试用例使用了 `self.skipTest` 方法来无条件跳过该测试用例;`test_nothing` 测试用例使用了 `@unittest.skip` 装饰器来无条件跳过该测试用例;`test_skip_if` 测试用例使用了 `@unittest.skipIf` 装饰器,当条件为 `True` 时跳过该测试用例;`test_skip_unless` 测试用例使用了 `@unittest.skipUnless` 装饰器,当条件为 `False` 时跳过该测试用例。
阅读全文