unittest支持跳过单个测试方法,甚至整个测试用例,还支持将测试用例标记为“测试失败”
基本跳过如下:
import unittestimport requests,sysclass 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): passif __name__ == '__main__': unittest.main()
执行结果:
可以看出有三个测试用例执行了跳过操作,甚至可以和跳过测试方法一样,跳过测试类
@unittest.skip("showing class skipping") class MySkippedTestCase(unittest.TestCase): def test_not_run(self): passTestCase.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) -
引用此异常跳过失败