zoukankan      html  css  js  c++  java
  • unittest跳过测试和预期失败

    在运行测试时,有时需要直接跳过某些测试用例,或者当用例符合某个条件时跳过测试,又或者直接将测试用例设置为失败。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。

  • 相关阅读:
    【ZJOI 2008】 生日聚会
    BZOJ2135 刷题计划(贪心+二分)
    BZOJ2124 等差子序列(树状数组+哈希)
    BZOJ2282 SDOI2011消防/NOIP2007树网的核(二分答案+树形dp)
    BZOJ1304 CQOI2009叶子的染色(树形dp)
    BZOJ1283 序列(费用流)
    BZOJ1266 AHOI2006上学路线(最短路+最小割)
    BZOJ1041 HAOI2008圆上的整点(数论)
    BZOJ3505 CQOI2014数三角形(组合数学)
    BZOJ5206 JSOI2017原力(三元环计数)
  • 原文地址:https://www.cnblogs.com/NancyRM/p/8384927.html
Copyright © 2011-2022 走看看