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)
  • 相关阅读:
    SharePoint 技巧系列: 提权
    SharePoint 2010 开发多语言用户界面
    dos下各种常见命令索引
    chrome浏览器背景颜色修改方案
    C/C++内存泄漏及检测(vs2005平台)【转】
    一些debug常用的"魔法"数值
    学习OpenCV——HOG+SVM
    Jane Eyre
    文件夹名称为单字,右键单击出“Runtime Error”
    桌面右键菜单的“排列图标”和“新建”选项丢失问题
  • 原文地址:https://www.cnblogs.com/shuzf/p/12718652.html
Copyright © 2011-2022 走看看