unittest单元测试生成HTML测试报告
前言:
HTMLTestRunner 是 Python 标准库的 unittest 模块的一个扩展,它可以生成 HTML的 测试报告。
一、下载HTMLTestRunnerNew.py文件:
下载链接:https://pan.baidu.com/s/1wqZIWN08h_cvvh0qorQI1g
二、安装:
将下载的文件保存到Python安装目录Lib下:
如:D:\Python35\Lib
在执行测试用例的时候引入,引入的方式: from HTMLTestRunnerNew import HTMLTestRunner

三、单元测试源码如下:
1)定义被测试函数:加法、减法、乘法、除法。
mathfunc.py
# 创建测试方法
def add(a,b):
print('测试加法功能')
return a+b def minus(a,b):
print('测试减法功能')
return a-b def multi(a,b):
print('测试乘法功能')
return a*b def divide(a,b):
print('测试除法功能')
return a/b
2)针对项目编写测试用例,使用基本的断言语句assert来对结果进行验证,其执行顺序按照函数名以ASCII码进行。
编写规则:
- 测试文件以test_开头(以_test结尾也可以)
- 测试类以Test开头,并且不能带有 __init__ 方法
- 测试函数以test_开头
- 断言使用基本的assert即可
test_mathfunc.py
import unittest # 导入单元测试框架
from mathfunc import * #导入需要测试的方法 # 创建测试用例
class TestMath(unittest.TestCase): #继承TestCase类
def test_add(self):
self.assertEqual(3, add(1,2)) #设置断言
self.assertNotEqual(5, add(3,2)) def test_minus(self):
self.assertEqual(3, minus(5,2))
self.assertNotEqual(2,minus(3,2)) def test_multi(self):
self.assertEqual(6,multi(2,3))
self.assertNotEqual(5,multi(2,3)) def test_divide(self):
self.assertEqual(3,divide(6,2))
self.assertNotEqual(2,divide(6,2)) if __name__ == '__main__':
unittest.main()
3)加载用例并执行,以HTML测试报告展现:
run.py
import unittest
import HTMLTestRunnerNew # 输出html测试结果方法使用
from test_mathfunc import TestMath #导入用例模块
import os # ---加载测试用例------------
suite = unittest.TestSuite() #创建实例 测试套件/测试用例的容器
loader = unittest.TestLoader() #创建实例 #直接加载某个测试 模块 里面的所有用例
suite.addTest(loader.loadTestsFromTestCase(TestMath)) # 测试结果输出在Html
with open(os.getcwd() + '/testResult_report.html','wb+') as file:
runner = HTMLTestRunnerNew.HTMLTestRunner(file,title='单元测试报告',description='单元测试',tester='lixhaozhe')
runner.run(suite)
四、生成结果图:

unittest单元测试生成HTML测试报告的更多相关文章
- Unittest单元测试框架——BeautifulReport测试报告和Yagmail自动发送邮件
一.前言 之前在做appium自动化的时候,已经提到过unittest框架的基本概念.用例执行,以及BeautifulReport测试报告的简单使用了(地址:https://www.cnblogs.c ...
- unittest测试框架和测试报告的输出实例(一)
我们整个自动化才是报告的环节基本上分为三个部分: 1.测试用例的准备 2.测试用例的执行 3.测试报告的输出 1.测试用例的准备: 那我们就以搜孤网页做一个简单的用例: from selenium i ...
- appium+python+unittest+HTMLRunner登录自动化测试报告
环境搭建 python3Java JDK.netFrameworknodejsandroid SDKappiumAppium-Python-Client(pip install Appium-Pyth ...
- 【unittest】unittest单元模块做assert
我在Windows上开发Python用的版本是2.7,在Ubuntu上开发的版本是2.6,而在Python的unittest模块中,有几个方法是在2.7才有的,它们是: Method Checks t ...
- Python + selenium之组织unittest单元测试用例
当增加被测功能和相应的测试用例之后unittest单元测试框架如何扩展和组织新增的测试用例的. # coding =utf-8 # calculator class Count (): def __i ...
- python调用HTMLTestRunner+unittest实现一次执行多个测试类,并生成与每个测试类对应的测试报告,具体看代码,附上整个project代码
python自动化框架雏形,根据自己需要封装:ui自动化,接口自动化均可适用,python版本为python3.x,不要问我为什么不用python2.x,附上整个project代码:http://fi ...
- unittest详解(七) 自动生成测试报告
用例执行完成后,执行结果默认是输出在屏幕上,其实我们可以把结果输出到一个文件中,形成测试报告. unittest自带的测试报告是文本形式的,如下代码: import unittest if __nam ...
- 简单的接口测试类和测试生成报告工具HTMLTestRunner.py
Demo.py #coding:utf-8 # import requests import json ''' data = { 'username':'jackson', 'password':'a ...
- unittest(1)
一.unittest核心概念 1.unittest四个核心概念 unittest四个核心概念包括:TestCase.TestSuite.TestRunner.Test Fixture TestCase ...
随机推荐
- nginx 基础配置详解
#本文只对nginx的最基本配置项做一些解释,对于配置文件拆分管理,更详细的集群健康检查的几种方式,检查策略等在此不做详细解释了. #运行用户user nobody;#启动进程,通常设置成和cpu的数 ...
- Django 之ModelForm
1.Form表单的回顾 Model - 数据库操作 - 验证 class A(MOdel): user = email = pwd = Form - class LoginForm(Form): em ...
- 聊聊数据库~6.SQL运维中篇
上篇回顾:https://www.cnblogs.com/dotnetcrazy/p/10810798.html#top 1.6.5.MySQL日志相关 本文的测试环境:MySQL5.7.26.Mar ...
- PostgreSQL 里面的 BIGSERIAL
@Id@GeneratedValue(strategy = GenerationType.IDENTITY)private Long id; CREATE TABLE article( id BIGS ...
- activiti基础--1------------------------生成.bpmn和.png以及部署流程定义
helloworld.dbmn <?xml version="1.0" encoding="UTF-8"?> <definitions xml ...
- 使用 Python 为 KVM 编写脚本,第 1 部分: libvirt
虚拟化是目前市场上大多数服务器操作系统的标准设备.在 Linux® 的世界里,服务器虚拟化有两个主要选择:基于 Kernel 的虚拟机 (KVM) 和 Xen.KVM 是 Red Hat 和其他公司采 ...
- value too great for base (error token is "08")
shell 中,经常有定时任务, 这时候shell脚本中一般会对时间进行一些判断,或者相关逻辑的操作 这时候,如果你获取的小时或者分钟是08,09,如果要再对其进行运算符或者比较的话,就会报标题的错误 ...
- LeetCode:验证回文串【125】
LeetCode:验证回文串[125] 题目描述 给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写. 说明:本题中,我们将空字符串定义为有效的回文串. 示例 1: 输入: ...
- QCon2016 上海会议汇总(2) - 团队管理
QCon 2016上海日程:http://2016.qconshanghai.com/schedule <当你的团队还支撑不起梦想时> - 链尚网技术合伙人 杨荣伟 Figo讲述了如何训练 ...
- CKeditor插件开发流程(二)SyntaxHighlighter
CKEditor整合SyntaxHighlighter实现代码高亮显示 1,版本说明 CKEditor:ckeditor_4.0.1_standard.zipSyntaxHighlighter:syn ...