unittest支持跳过单个测试方法,甚至整个测试用例,还支持将测试用例标记为“测试失败”
基本跳过如下:
import unittest
import requests,sys
class MyTestCase(unittest.TestCase):
@unittest.skip("do something skip!")
def test_one(self):
print("本用例执行跳过操作")
def test_two(self):
print("本用例不跳过,继续执行")
@unittest.skipIf(requests.__version__<"3","the test skip")
def test_three(self):
print("本用例执行跳过操作")
@unittest.skipUnless(sys.platform.startswith("win"), "requires Windows")
def test_four(self):
pass
if __name__ == '__main__':
unittest.main()
执行结果:
可以看出有三个测试用例执行了跳过操作,甚至可以和跳过测试方法一样,跳过测试类
@unittest.skip("showing class skipping") class MySkippedTestCase(unittest.TestCase): def test_not_run(self): pass
TestCase.setUP()也可以跳过测试。当需要设置的资源不可用时,这很有用。
预期的失败可以使用expectedFailure方法
class ExpectedFailureTestCase(unittest.TestCase):
@unittest.expectedFailure
def test_fail(self):
self.assertEqual(1, 0, "broken")
unittest的SKIP几种方式
unittest.
skip
(reason)-
无条件跳过测试,reason应填充跳过的原因
unittest.
skipIf
(condition, reason)-
如果条件为真,则跳过该测试
unittest.
skipUnless
(condition, reason)-
除非条件为真,否则跳过测试
unittest.
expectedFailure
()-
标记测试为失败,如果测试失败,则结果为通过,如果测试通过,则结果失败
- exception
unittest.
SkipTest
(reason) -
引用此异常跳过失败