跳过测试用例
从Python3.1版本开始,unittest支持跳过单个测试方法甚至整个测试类。 也就是说,某些情况下,我们需要跳过指定的用例。 我们可以使用unittest提供的相关装饰器来完成:
decorators | description |
---|---|
@unittest.skip(reason) | 无条件地跳过装饰测试用例。 理由应该描述为什么跳过测试用例。 |
@unittest.skipIf(condition, reason) | 如果条件为真,则跳过修饰的测试用例。 |
@unittest.skipUnless(condition, reason) | 除非条件为真,否则跳过修饰的测试用例。 |
@unittest.expectedFailure | 将测试标记为预期的失败。如果测试失败,将被视为成功。如果测试用例通过,则认为是失败。 |
expection unittest.SkipTest(reason) | 引发此异常以跳过测试测试用例。 |
示例
import unittest
@unittest.skip('无条件跳过该用例类')
class MyTestCase1(unittest.TestCase):
@unittest.skip('无条件跳过该用例')
def test_case_01(self):
# print('执行成功')
self.assertEqual('A', 'A')
@unittest.skipIf(condition=1 < 2, reason='条件为真跳过')
def test_case_02(self):
# print('执行成功')
self.assertEqual('c', 'c')
class MyTestCase2(unittest.TestCase):
def test_case_03(self):
# print('执行成功')
self.assertEqual('A', 'A')
def test_case_04(self):
# print('执行成功')
self.assertEqual('c', 'c')
if __name__ == '__main__':
unittest.main(verbosity=2)
需要强调的是,如果同时为用例类和该类中的用例添加了跳过,那么用例类跳过优先级高。