1.报告显示注释,且注释包含ddt参数化数据
在注释位置加上{0}(如图)
运行结果为: 报告中显示了所有的参数数据
然后修改使用的HTMLTestRunner.py中的
_generate_report_test 方法
该方法完整的代码
def _generate_report_test(self, rows, cid, tid, n, t, o, e):
# e.g. 'pt1.1', 'ft1.1', etc
has_output = bool(o or e)
tid = (n == 0 and 'p' or 'f') + 't%s.%s' % (cid+1,tid+1)
name = t.id().split('.')[-1]
doc = t.shortDescription() or ""
if '=' in doc:#根据自己注释样式,来判断哪些是可以用来转换为dict
import json
import re
doc1=doc.split('=')[1].strip()#如果注释写的有某些符号隔开,则需要切割,只需要参数化文件中的内容
doc0=doc.split('=')[0].strip()
doc = re.sub('\'', '\"', doc1)#将ddt参数化文件中的单引号全部改为双引号
doc = json.loads(doc)#将json类型的转化为dict
doc =doc0 +'='+doc['case_name']+','+doc['memberID']#根据自己所需拼凑doc
desc = doc and ('%s: %s' % (name, doc)) or name
tmpl = has_output and self.REPORT_TEST_WITH_OUTPUT_TMPL or self.REPORT_TEST_NO_OUTPUT_TMPL
script = self.REPORT_TEST_OUTPUT_TMPL % dict(
id=tid,
output=saxutils.escape(o+e),
)
row = tmpl % dict(
tid=tid,
Class=(n == 0 and 'hiddenRow' or 'none'),
style=(n == 2 and 'errorCase' or (n == 1 and 'failCase' or 'none')),
desc=desc,
script=script,
status=self.STATUS[n],
)
rows.append(row)
if not has_output:
return
运行效果:
此方法只是抛砖引玉,或许可以根据类似思维定制更多个性化的doc!!!