unittest参数化(paramunittest)

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

 

原文地址:https://www.cnblogs.com/jialeliu/p/14115239.html