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條是默認的樣式。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM