下面是Python基于paramunittest模块实现excl参数化的详细攻略。
什么是paramunittest模块
paramunittest是一个Python的单元测试模块,可以实现对方法参数进行参数化自动测试。
安装paramunittest模块
在命令行执行下面的指令进行安装:
pip install paramunittest
实现excl参数化
第一步:创建测试用例的excl参数文件
创建一个excl参数文件,对测试参数进行统一管理。excl文件的格式可以使用.csv或.xlsx文件,简单起见,这里以.csv文件为例。
假设需要对一个计算两数之和的函数进行测试,那么我们可以创建一个参数文件test_data.csv
,包含以下两行数据:
a,b,result
1,2,3
2,2,4
第二步:编写测试用例
通过继承paramunittest.TestCase类,实现单元测试用例,并在用例函数上添加@paramunittest.parametrized
以实现参数化。
import paramunittest
import unittest
from mymodule import add # 需要测试的函数
@paramunittest.parametrized(
{"a": 1, "b": 2, "result": 3},
{"a": 2, "b": 2, "result": 4}
)
class MyTestCase(unittest.TestCase):
def setParameters(self, a, b, result):
self.a = a
self.b = b
self.result = result
def test_add(self):
self.assertEqual(add(self.a, self.b), self.result)
第三步:链接参数文件和测试用例
在测试用例类上添加@paramunittest.parametrized
装饰器,并在装饰器中传入数据源的文件名和Sheet名(或者None)。
@paramunittest.parametrized(
*paramunittest.load_csv("test_data.csv")
)
class MyTestCase(unittest.TestCase):
# ...
示例一
# test_data.csv文件内容如下:
# a,b,result
# 1,2,3
# 2,2,4
import paramunittest
import unittest
from mymodule import add
@paramunittest.parametrized(
*paramunittest.load_csv("test_data.csv")
)
class TestAdd(unittest.TestCase):
def setParameters(self, a, b, result):
self.a = a
self.b = b
self.result = result
def test_add(self):
self.assertEqual(add(self.a, self.b), self.result)
示例二
# test_data.xlsx文件内容如下:
# Sheet1
# a b result
# 1 2 3
# 2 2 4
import paramunittest
import unittest
from mymodule import add
@paramunittest.parametrized(
*paramunittest.load_excel("test_data.xlsx", "Sheet1")
)
class TestAdd(unittest.TestCase):
def setParameters(self, a, b, result):
self.a = a
self.b = b
self.result = result
def test_add(self):
self.assertEqual(add(self.a, self.b), self.result)
结尾
以上就是Python基于paramunittest模块实现excl参数化的攻略,希望对您有帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python基于paramunittest模块实现excl参数化 - Python技术站