做数据驱动的自动化测试时,用例名称描述在BeautifulReport等报告模板中始终是一样,无法一目了然的在测试报告中看到测试内容。因此需要修改ddt的用例描述,最好和excel中测试数据的描述保持一致,有两个方法解决这个问题:
方法一:修改ddt
如下图所示,注释掉原先的test_data_docstring = _get_test_data_docstring(func, v) ,改成自己的测试数据格式就行
image.png
方法二:分解测试数据直接出入用例名称
相对方法一中的修改原始模块,个人更推荐以下方法
import unittest,ddt
datalist = [{'caseNum': 'case001', 'caseName': '企业报告 —— 基本信息'},{'caseNum': 'case002', 'caseName': '企业报告 —— 专利'}]
@ddt.ddt
class Datalaw(unittest.TestCase):
'''接口数据测试'''
@classmethod
def setUpClass(cls):
pass
@classmethod
def tearDownClass(cls):
pass
@ddt.data(*datalist)
def test_search2(self, data):
'''测试用例:{0}'''
print("测试数据:%s"%data)
如下图所示,会在报告的用例描述中显示测试数据。
image.png
但这样也存在一个问题,如果测试数据过长,最终的测试报告会存在排版问题,这不是想要的最终结果,如果只显示测试数据中的用例描述(caseName)则完美,不废话直接上代码:
@ddt.data(*datalist)
@ddt.unpack #分解测试数据
def test_search2(self, caseNum,caseName):
'''测试用例:{caseName}'''
print("测试数据:%s"%caseNum)
print("测试数据:%s"%caseName)
效果图,这样测试报告则会清晰很多:
image.png