在 unittest 中,ddt(Data-Driven Tests)库是实现参数化测试的强大工具,支持通过装饰器将多组测试数据注入测试方法,生成独立的测试用例。本指南将详细讲解其使用方法及实际应用场景。
一、ddt 的核心功能
简化参数化流程:通过装饰器自动生成多组测试用例。支持多种数据类型:离散值、元组、字典、外部文件(JSON/YAML)。清晰的测试报告:每个数据组合独立显示,便于调试失败用例。
二、安装与配置
pip install ddt
三、基础使用教程
- 单个参数的参数化
import unittest
from ddt import ddt, data, unpack
@ddt # 必须装饰测试类
class TestBasic(unittest.TestCase):
@data(1, 2, 3) # 为测试方法提供多组单参数
def test_square(self, number):
result = number ** 2
self.assertTrue(result > 0)
if __name__ == "__main__":
unittest.main(verbosity=2)
运行结果:
test_square_0 (__main__.TestBasic) ... ok
test_square_1 (__main__.TestBasic) ... ok
test_square_2 (__main__.TestBasic)