zoukankan      html  css  js  c++  java
  • unittest运行时指定运行顺序

    背景:在unittest中运行单元测试,是没有顺序的,如果要指定运行顺序有两种方式

    方法1:在运行方法后,加上数字test_0 、test_1 这样也会指定顺序

    方法2:使用不同的字母表示,因为在单元测试框架中会对比每个运行方法名的ascii码,ascii码越大执行越靠后

    案例:

    测试方法

    # coding=utf-8
    class Calc(object):
    
        def add(self, x, y, *d):
            # 加法计算
            result = x + y
            for i in d:
                print(i)
                result += i
            return result
    
        def sub(self, x, y, *d):
            # 减法计算
            result = x - y
            for i in d:
                result -= i
            return result
    
        @classmethod
        def mul(cls, x, y, *d):
            # 乘法计算
            result = x * y
            for i in d:
                result *= i
            return result
    
        @staticmethod
        def div(x, y, *d):
            # 除法计算
            if y != 0:
                result = x / y
            else:
                raise  ZeroDivisionError
                return -1
            for i in d:
                if i != 0:
                    result /= i
                else:
                    raise  ZeroDivisionError
                    return -1
            return result
    		
    if __name__=="__main__":
        c=Calc()
        print (c.add(1,2,3,4))
    

      

    运行单元测试方法

    import unittest
    from Calc import Calc
    
    class MyTest(unittest.TestCase):
    
        @classmethod
        def setUpClass(self):
            print (u"单元测试前,创建Calc类的实例")
            self.c = Calc()
    
        def test_3div(self):
            print ("run div()")
            self.assertEqual(Calc.div(8, 2, 4), 1, 'test div fail')
    
        # 具体的测试用例,一定要以test开头,执行顺序按照字母顺序开头
        def test_0add(self):
            print ("run add()")
            self.assertEqual(self.c.add(1, 2, 12), 15, 'test add fail')
    
        def test_1sub(self):
            print ("run sub()")
            self.assertEqual(self.c.sub(2, 1, 3), -2, 'test sub fail')
    
        def test_2mul(self):
            print ("run mul()")
            self.assertEqual(Calc.mul(2, 3, 5), 30, 'test mul fail')
    
        def test_runb(self):
            print("run b")
    
        def test_runa(self):
            print ("run a")
    
    if __name__ == '__main__':
        unittest.main()# 启动单元测试
    

      执行结果

    运行的数字排序、在相同的方法名时,对比不同字母的ascii码,a是97 b是98

  • 相关阅读:
    img标签为什么可以设置宽高
    高度和宽度的操作
    自增自减运算符
    读取标签内容:innerHTML和innerText的区别 text()和html()的区别
    js中的常用方法
    js中style,currentStyle和getComputedStyle的区别以及获取css操作方法(考虑兼容性和局限性)
    IE盒模型与W3C盒模型区别
    css四种定位方式及其区别
    css隐藏元素的方法何区别
    Hibernate之HQL
  • 原文地址:https://www.cnblogs.com/chongyou/p/12496591.html
Copyright © 2011-2022 走看看