• 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

  • 相关阅读:
    Textbox 自动调节高度
    Sharepoint 2010 备份与恢复 (二)
    Sharepoint 2010 备份与恢复 (一)
    Sharepoint 查看站点集是否锁住状态
    Sharepoint安装Infopath Service
    php分页显示类——在线拍卖行(1)
    php一个比较基础的文件上传的代码
    html表单的type属性
    JQuery简单表单验证
    最近的一些思考,感悟和理解。
  • 原文地址:https://www.cnblogs.com/chongyou/p/12496591.html
Copyright © 2020-2023  润新知