在运行测试时,有时需要直接跳过某些测试用例,或者当用例符合某个条件时跳过测试,又或者直接将测试用例设置为失败。unittest提供了这些需求的装饰器。
unittest.skip(reason)
无条件跳过测试,说明跳过测试的原因
unittest.skipIf(condition,reason)
跳过测试,如果条件为真时
unittest.skipUnless(condition,reason)
跳过测试,除非条件为真
unittest.expectedfailure()
测试标记为失败。不管执行结果是否失败,统一标记为失败
Python案例:
import unittest
def setUpModule():
    print("test module start>>>>>>>>>>>>>>>>>>>>>>>")
def tearDownModule():
    print("test module end>>>>>>>>>>>>>>>>>>>>>>>>")
class Test1(unittest.TestCase):
    @classmethod
    def setUpClass(cls):
        print("class Test1 start<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<")
    @classmethod
    def tearDownClass(cls):
        print("class Test1 end<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<")
    def setUp(self):
        pass
    @unittest.skipIf(4 > 3, "当条件为True时跳过测试")
    def test_c(self):
        print("test ccc")
    @unittest.skipUnless(3 > 2, "当条件为True时执行测试")
    def test_b(self):
        print("test bbb")
    def tearDown(self):
        pass
class Test2(unittest.TestCase):
    def setUp(self):
        pass
    @unittest.skip("直接跳过测试")
    def test_d(self):
        print("test ddd")
    @unittest.expectedFailure
    def test_a(self):
        print("test aaa")
    def tearDown(self):
        pass
if __name__ == '__main__':
    unittest.main()
在本案例的开始,使用了fixtures。比如Test Fixture,通过覆盖TestCase的setUp()和tearDown()方法来实现。
在setUp()中通过建立数据库来进行初始化,在tearDown()中清除数据库产生的数据。
初次之外,unittest还提供了更大范围的fixtures,例如对于测试类和模块的fixtures。
 
                     
                    
                 
                    
                 
 
         
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号