zoukankan      html  css  js  c++  java
  • python-unittest执行顺序

     关于unittest框架执行顺序是:

    import unittest
    
    class TestCases(unittest.TestCase):
        @classmethod
        def setUpClass(cls):
            setattr(unittest.TextTestResult, 'startTestRun', '获取token方法')
            print("setUPClass")
    
        def setUp(self):
            print("setUP")
    
        def testOne(self):
            print("testone111")
        def testTwo(self):
            print("testtwo222")
    
        @unittest.skip('跳过')
        def testA(self):
            print("testA")
    
        @unittest.skipIf(True,'条件真跳过')
        def testB(self):
            print("testB")
    
        @unittest.skipUnless(False,'条件假跳过')
        def testC(self):
            print("testC")
    
        @unittest.expectedFailure  ##标记该测试预期为失败(断言结果是否为False,为假则测试用例通过)
        def testD(self):
            print("testD")
    
        def tearDown(self):
            print("tearDown")
    
        @classmethod
        def tearDownClass(cls):
            print(getattr(unittest.TextTestResult, 'startTestRun'))
            print("tearDownClass")
    
    if __name__ == '__main__':
        unittest.main(verbosity=2)


    out:

    setUPClass
    setUP
    testD
    tearDown
    setUP
    testone111
    tearDown
    setUP
    testtwo222
    tearDown
    获取token方法
    tearDownClass

    关于unittest用例执行顺序是:
      根据ASCII码的顺序加载,数字与字母的顺序为:0-9,A-Z,a-z。所以以A开头的测试用例方法会优先执行,以a开头会后执行

    """
    unittest中测试用例执行顺序
    """
    
    import unittest
    from operator import eq
    
    class TestOrder(unittest.TestCase):
        def test_b(self):
            print('test_b success')
    
        def test_a1(self):
            print('test_a1 success')
    
        def test_c(self):
            print('test_c success')
    
        def test_a2(self):
            print('test_a2 success')
    
    if __name__ == '__main__':
        def ln(f):
            return getattr(TestOrder, f)
        suite = unittest.TestSuite()
        loader = unittest.TestLoader()
        # eq(x,y) 函数用于比较2个对象,如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1
        loader.sortTestMethodsUsing = lambda a, b: eq(ln(a), ln(b))
        suite.addTest(loader.loadTestsFromTestCase(TestOrder))
        unittest.TextTestRunner(verbosity=2).run(suite)
  • 相关阅读:
    spring boot学习01【搭建环境、创建第一个spring boot项目】
    C#窗体学生成绩管理系统
    七、整合SQL基础和PL-SQL基础
    六、异常处理概念
    五、PL/SQL循环、游标、函数和过程
    四、SQL基础知识--约束和视图
    三、Oracle常用内置函数
    二、事务
    一、SQL基础知识点补充
    前端未掌握知识点记录
  • 原文地址:https://www.cnblogs.com/shuzf/p/12718652.html
Copyright © 2011-2022 走看看