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学习4-跳过用例执行-LMLPHP

可以看出有三个测试用例执行了跳过操作,甚至可以和跳过测试方法一样,跳过测试类

@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(conditionreason)

如果条件为真,则跳过该测试

unittest.skipUnless(conditionreason)

除非条件为真,否则跳过测试

unittest.expectedFailure()

标记测试为失败,如果测试失败,则结果为通过,如果测试通过,则结果失败

exception unittest.SkipTest(reason)

引用此异常跳过失败

05-11 22:06