1、paramunittest是unittest实现参数化的一个专门的模块,可以传入多组参数,自动生成多个用例
2、实例代码
注意这里接受参数的时候,必须要定义setParameters这个方法,并且只能是这个名称。
括号后面的参数分别接受传入的参数名称。前面定义的是字典,那参数就跟前面字典的key保持一致
import unittest import paramunittest import time @paramunittest.parametrized( {"username": "admin1", "psw": "1234", "result": "true"}, {"username": "admin2", "psw": "4321", "result": "true"}, {"username": "admin3", "psw": "1234", "result": "true"}, {"username": "admin4", "psw": "5678", "result": "true"}) class TestDemo(unittest.TestCase): def setParameters(self, username, psw, result): # user, psw, result三个参数和前面定义的字典一一对应 self.user = username self.psw = psw self.result = result def testcase(self): print("开始执行用例:--------------") time.sleep(0.5) print("输入用户名:{}".format(self.user)) print("输入密码:{}".format(self.psw)) print("期望结果:{}".format(self.result)) time.sleep(0.5) self.assertTrue(self.result == "true") if __name__ == "__main__": unittest.main(verbosity=2) # 显示详细运行结果
运行结果:
开始执行用例:--------------
testcase (paramunittest.TestDemo_0) ... 输入用户名:admin1
输入密码:1234
期望结果:true
开始执行用例:--------------
ok
testcase (paramunittest.TestDemo_1) ... 输入用户名:admin2
输入密码:4321
期望结果:true
ok
testcase (paramunittest.TestDemo_2) ... 开始执行用例:--------------
输入用户名:admin3
输入密码:1234
期望结果:true
开始执行用例:--------------
ok
testcase (paramunittest.TestDemo_3) ... 输入用户名:admin4
输入密码:5678
期望结果:true
ok