HTMLTestRunner生成的报告显示注释(注释中含有参数文件中数据)以及个性化设置报告显示的参数数据的内容

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!!!

猜你喜欢

转载自blog.csdn.net/qq_34309753/article/details/84138807