跳过预期和预期失败
在运行测试时,有时需要直接跳过某些测试用例,或者当用例符合某个条件时跳过测试,又或者直接将测试用例设置为失败。unittest提供了实现这些需求的装饰器。
--unittest.skip(reason) 无条件地跳过装饰的测试,说明跳过的原因。 --unittest.skipIf(condition,reason) 如果条件为真时,跳过装饰的测试。 --unittest.skipUnless(condition,reason) 除非条件为真,跳过装饰的测试。 --unittest.expectedFailure() 测试标记为失败。不管执行结果是否失败,统一标记为失败
#coding:utf-8
import unittest
class MyTest(unittest.TestCase):
def setUp(self):
pass
def tearDown(self):
pass
@unittest.skip("直接跳过测试")
def test_skip(self):
print("test aaa")
@unittest.skipIf(3>2,"当条件为真时,跳过测试")
def test_skip_if(self):
print "test bbb"
@unittest.skipUnless(3>2,"当条件为真时,执行测试")
def test_skip_unless(self):
print "test ccc"
@unittest.expectedFailure
def test_excepted_failure(self):
self.assertEqual(2,3)
if __name__=="__main__":
unittest.main()
执行结果如下图所示:

此例子中,创建了4条测试用例,第一条用例通过@unittest.skip()装饰,直接跳过不执行。
第二条用例通过@unittest.skipIf()装饰,当条件为真时不执行。
第三条用例通过@unittest.skipUnless()装饰,当条件为真时执行。
第四条用例通过@unittest.expectedFailure装饰,不管执行结果是否失败,统一标记为失败,但不会抛出错误信息。
这些也可以直接作用于测试类
#coding:utf-8 import unittest
……………
@unittest.skip("直接跳过测试类")
class MyTest(unittest.TestCase):
……………
浙公网安备 33010602011771号