以下是 unittest 结合 parameterized 实现参数化测试 的详细教程,通过多种示例覆盖不同测试场景,帮助你在自动化测试中高效处理多组数据输入:
一、安装与基础使用
1. 安装 parameterized
pip install parameterized
2. 基本示例:计算器加法测试
import unittest
from parameterized import parameterized
class TestCalculator(unittest.TestCase):
@parameterized.expand([
(1, 2, 3), # 测试数据组1
(0, 0, 0), # 测试数据组2
(-1, 1, 0) # 测试数据组3
])
def test_add(self, a, b, expected):
"""参数化加法测试"""
self.assertEqual(a + b, expected)
运行结果:
test_add_0 (__main__.TestCalculator) ... ok
test_add_1 (__main__.TestCalculator) ... ok
test_add_2 (__main__.TestCalculator) ... ok
每组测试数据生成独立的测试方法(方法名添加后缀 _0, _1 等),便于快速定位失败用例。
二、参数化类型与应用场景
1. 单一参数列表
当测试方法仅需单参数时:
class TestStrings(unittest.TestCase):
@parameterized.expand(["Apple", "Banana", "Orange"])
def test_fruit_length(self, fruit):
self.assertGreater(