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 ...
随机推荐
- 【网络与系统安全】关于SSL/TSL协议的分析
前言 TSL协议的前身是由网景(Netscape)公司于1994年研发的安全套接字(Secure Socket Layer)协议.它建立在TCP协议栈的传输层,用于保护面向连接的TCP通信.实际TSL ...
- 我的Android进阶之旅------>Android中android:windowSoftInputMode的用法
面试题:如何在显示某个Activity时立即弹出软键盘? 答案:在AndroidManifest.xml文件中设置<activity>标签的android:windowSoftInputM ...
- python实例1:创建一个登陆模块
实现功能: 1.用户输入账户密码 2.验证账户是否存在于黑名单,如果存在于黑名单,则执行1,否则往下执行 3.验证用户名和密码. 3.1.如果验证成功,则打印欢迎信息并退出程序: 3.2.如果用户名存 ...
- 使用curl / wget命令上传下载FTP
curl可以在shell下轻松上传下载ftp上的文件,相比ftp命令更具有优势,因为它能在单命令条件下,下载或者上传一个ftp文件,甚至可以删除文件. 下面看实例: 1.列出ftp服务器上的目录列表: ...
- 第1条:确认自己所用的Python版本
很多电脑都预装了多个版本的标准CPython运行时环境,然而,在命令行中输入默认的python命令之后,究竟会执行哪一个版本无法肯定. python通常是python2.7的别名,但也有可能是pyth ...
- 【LeetCode】 数相加组合 Combination Sum
描述 Given a set of candidate numbers (candidates) (without duplicates) and a target number (target), ...
- c的详细学习(5)数组
到目前为止,前面介绍的都是属于基本类型的数据.除此之外,C语言还提供了一些更为复杂的数据类型,称为构造类型.数组就是最基本的构造类型.若要针对一批数据进行某种操作,采用数组是一种方便可行的方法 ...
- [原创]java WEB学习笔记27:深入理解面向接口编程
本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...
- 通过elasticsearch对日志进行搜索热词统计
通过logstash搜集日志 这里搜集日志可以使用ELK的一个插件filebeat对日志进行处理,并传输到后端的程序 在这里有一个不好的地方, 如果想要直接使用filebeat将日志发送到elasti ...
- Oracle创建函数
--创建函数语法 create [or replace] function [schema.]function_name (函数参数列表) --参数有IN.OUT.IN OUT三种类型:IN代表需要输 ...