编写了html怎么测试,如何将测试结果写入HTMLTestRunner生成的报告标题中
HTMLTestRunner生成测试报告时,报告的标题在运行前就已经写死在代码了,假如我现在需要在执行完毕后,根据执行结果,把执行的状态写在标题里面,类似的效果如图:
标题
如果有一条执行错误的,就在后面加ERROR,如果有一条执行失败的,就在后面加FAIL,如果都通过,就在后面加PASS
要达到这个效果,我们就要研究,HTMLTestRunner里面是怎么生成报告的标题的
在HTMLTestRunner类的run()方法里面,有一句self.generateReport(test, result)
def run(self, test):
"Run the given test case or test suite."
result = _TestResult(self.verbosity)
test(result)
self.stopTime = datetime.datetime.now()
self.generateReport(test, result)
print('\nTime Elapsed: %s' % (self.stopTime-self.startTime), file=sys.stderr)
return result
很显然,generateReport是生成测试报告的方法,继续研究这个方法
def generateReport(self, test, result):
report_attrs = self.getReportAttributes(result)
generator = 'HTMLTestRunner %s' % __version__
stylesheet = self._generate_stylesheet()
heading = self._generate_heading(report_attrs)
report = self._generate_report(result)
ending = self._generate_ending()
output = self.HTML_TMPL % dict(
title = saxutils.escape(self.title),
generator = generator,
stylesheet = stylesheet,
heading = heading,
report = report,
ending = ending,
)
self.stream.write(output.encode('utf8'))
我们分别研究这里面的几个self的方法,发现self._generate_heading很可疑
def _generate_heading(self, report_attrs):
a_lines = []
for name, value in report_attrs:
line = self.HEADING_ATTRIBUTE_TMPL % dict(
name = saxutils.escape(name),
value = saxutils.escape(value),
)
a_lines.append(line)
heading = self.HEADING_TMPL % dict(
title = saxutils.escape(self.title),
parameters = ''.join(a_lines),
description = saxutils.escape(self.description),
)
return heading
看源码,这确实是处理报告头部信息的方法,包括标题,描述,测试结果等等,那么就可以改造了。现在我们需要根据测试结果,来重新定义标题,而该方法中没有测试结果相关的内容,所以我们把测试结果当成参数传进来,而在这里面,测试结果都是result,所以这里可以改造为:
def _generate_heading(self, report_attrs, result):
a_lines = []
for name, value in report_attrs:
line = self.HEADING_ATTRIBUTE_TMPL % dict(
name=saxutils.escape(name),
value=saxutils.escape(value),
)
a_lines.append(line)
# 在标题中显示当前测试任务的结果
if result.error_count > 0:
self.title = self.title + ' --[ERROR]'
elif result.failure_count > 0:
self.title = self.title + ' --[FAIL]'
else:
self.title = self.title + ' --[PASS]'
heading = self.HEADING_TMPL % dict(
title=saxutils.escape(self.title),
parameters=''.join(a_lines),
description=saxutils.escape(self.description)
)
return heading
那么相应的generateReport方法中
heading = self._generate_heading(report_attrs)
需要修改为
heading = self._generate_heading(report_attrs, result)
再次执行测试任务,就可以根据测试任务的结果显示标题了
编写了html怎么测试,如何将测试结果写入HTMLTestRunner生成的报告标题中相关推荐
- 怎样编写测试类测试分支_测试技巧–不编写测试
怎样编写测试类测试分支 对此没有太多疑问,测试代码的方式是一个有争议的问题. 不同的测试技术由于各种原因(包括企业文化,经验和总体心理观点)而受到不同开发人员的青睐. 例如,您可能更喜欢编写经典的单元 ...
- 使用python构造大量测试数据_python实例编写(6)--引入unittest测试框架,构造测试集批量测试(以微信统一管理平台为例)...
---恢复内容开始--- 一.python单元测试实例介绍 unittest框架又叫PyUnit框架,是python的单元测试框架. 先介绍一个普通的单元测试(不用unittest框架)的实例: 首先 ...
- /*按要求编写一个Java应用程序程序:(1)定义一个接口CanFly,描述会飞的方法public void fly();(2)分别定义类飞机和鸟,实现CanFly接口。(3)定义一个测试类,测试飞机
/* 按要求编写一个Java应用程序程序: (1)定义一个接口CanFly,描述会飞的方法public void fly(); (2)分别定义类飞机和鸟,实现CanFly接口. (3)定义一个测试类, ...
- 编写测试用例基本要求、非功能性测试和状态迁移法介绍
编写测试用例基本要求 1.项目测试流程 (1)需求评审 (2)编写测试计划与测试方案 (3)测试用例设计与评审 (4)测试执行与BUG跟踪 (5)编写测试报告 2.测试用例需求来源 (1)需求说明书, ...
- 使用 Android Studio 进行测试 (二) UI 测试
目录 单元测试 UI 测试 原文链接: Unit and UI Testing in Android Studio 2. UI 测试 配置 编码 测试 2.1 配置 2.1.1 IDE 配置 Buil ...
- 【星云测试】开发者测试-采用精准测试工具对Spring Boot应用进行测试
2019独角兽企业重金招聘Python工程师标准>>> 简介:本文主要介绍把现今主流的springboot框架项目和精准测试工具进行结合和应用,通过精准测试的数据穿透.数据采集.测试 ...
- 利用 Rize 来进行 UI 测试或 E2E 测试
之前我曾经在<Rize - 一个可以让你简单.优雅地使用 puppeteer 的 Node.js 库>一文简单介绍过 Rize 这个库.当时仅仅是介绍这个库本身,关于如何使用,我没有给太多 ...
- 【Java单元测试】如何进行单元测试、异常测试、参数化测试、超时测试、测试多线程
Junit单元测试的步骤 (1)新建一个单元测试 (2)选择位置 (3)选择需要测试的方法 (4)是否将Junit 4添加到ClassPath中 (5)自动生成的测试类 (6) 然后就可以编写单元测试 ...
- CETK测试原理/测试方法/测试结果分析以及常见WinCE Test Kit运行问题的排查
小弟这两天学习和分析了CETK,并总结了一份文档,粘贴出来,希望对各位有用. 因为文章有26页,没有办法在一篇帖子中罗列出来,我分好几个帖子进行罗列. CONTENT 一.CETK概述... 1 1. ...
最新文章
- IETester-IE兼容性测试工具
- 栈应用之 括号匹配问题(Python 版)
- Acwing第 25 场周赛【完结】
- CTF-压缩包密码CRC爆解工具安装
- Linux tar将分割的小文件进行合并
- ubuntu下命令行启动vmware某个虚拟机
- mysql+rownumber的用法_mysql中如何实现row_number
- 指数函数中x的取值范围_谨记!高考数学中容易出错的几个地方
- html 生成image java makenoise,[图形学] 柏林噪声 (perlin noise)
- Js 正则表达式截取html内容,如何从JavaScript中的字符串中剥离HTML(仅提取文本内容)...
- 【java】的传值方式
- 【滤波器】基于matlab GUI低通+带通+高通FIR与IIR滤波器设计【含Matlab源码 360期】
- linux 终止作业任务命令,linux-尝试终止进程时出错—“ kill:pid:参数必须是进程或作业ID”...
- 【POJ 3276】【开关问题】Face The Right Way【暑期 No.4】
- 深圳最新10区地图划分JSON
- 直播APP开发如何得到用户青睐?
- 联想笔记本电脑BIOS中英文对照
- Python替换月份为英文缩写
- CVPR 2019 论文汇总(按方向划分,0506 更新中)
- Java正则表达式简单入门