zoukankan      html  css  js  c++  java
  • Python之unittest参数化

    unittest如何做参数化呢?

    我们在写case 的时候如果就是参数不同,我们只需要把参数都写到一个list里面, 然后循环去执行这个case即可。

    unittest中有一个模块parameterized,可以帮我们循环,不需要自己写循环,直接pip install parameterized安装即可。

    例如:一个登陆的case

    import parameterized
    import unittest,BeautifulReport
    
    data = [
        ['admin','123456',True], #第三列表示预期结果
        ['admin','1122',False],
        ['sdfsdf','1111',False]
    ]
    
    data1 = [
        ['admin','123456',True,'正常登陆'], #第四列表示描述
        ['admin','1122',False,'冻结用户登陆'],
        ['sdfsdf','1111',False,'黑名单用户登陆']
    ]
    
    def login(user,password):
        if user=='admin' and password=='123456':
            return True
        return False
    
    class LoginTest(unittest.TestCase):
        @parameterized.parameterized.expand(data)
        def test_login(self,user,password,expect):
            '''登陆''' # 加上'''在测试报告中会显示用例描述
            result=login(user,password)
            self.assertEqual(expect,result)
    
        @parameterized.parameterized.expand(data1)
        def test_login1(self,user,password,expect,desc):
            self._testMethodDoc=desc #自己指定用例描述的展示样子
            result=login(user,password)
            self.assertEqual(expect,result)
    
    bf=BeautifulReport.BeautifulReport(unittest.makeSuite(LoginTest))
    bf.report(filename='11-17测试报告',description='接口测试报告')

    结果:展示了2种用例描述的样式,其中123条是指定的用例描述,456条是默认的样式。

  • 相关阅读:
    switch选择结构
    变量与数据类型
    if选择结构
    NewSQL数据库VoltDB特性简介
    关系代数的并行计算
    【伯乐在线】程序员一定要投资的那些事
    Spark on Yarn
    六星经典CSAPP笔记(1)计算机系统巡游
    程序员的“机械同感”
    Impala中的代码生成技术
  • 原文地址:https://www.cnblogs.com/tata-learning/p/11902146.html
Copyright © 2011-2022 走看看