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 ...
随机推荐
- STL中vector怎么实现邻接表
最近,同期的一位大佬给我出了一道题目,改编自 洛谷 P2783 有机化学之神偶尔会做作弊 这道题好坑啊,普通链表过不了,只能用vector来存边.可能更快一些吧? 所以,我想记录并分享一下vector ...
- maven编译问题-maven项目运行时找不到文件,解决方案之一
问题描述:以上信息是tomcat在启动项目的时候报的错误信息,发现没有找到配置文件,实际上配置文件在项目中是存在的,但是,在编译过程中,配置文件没有能加载到编译后的项目中.就造成了,找不到这些怕配置文 ...
- 简易bootloader重定位问题
单板选择NandFlash启动,则硬件上电后,系统会自己主动将NandFlash中的前4K内容复制到STEPSTONE即4K SRAM中.然后从SRAM中的0X0地址启动. 基于mini ...
- 梯度下降算法(gradient descent)
简述 梯度下降法又被称为最速下降法(Steepest descend method),其理论基础是梯度的概念.梯度与方向导数的关系为:梯度的方向与取得最大方向导数值的方向一致,而梯度的模就是函数在该点 ...
- Android系统字体规范
我们在做Android移动APP设计的时候,字号的选择也是很让人头疼,转载一份有关Android系统字体规范,如果在做Android项目的用户应该看看,如果有任何建议欢迎在留言处与我们交流探讨. 主要 ...
- matlab + c/c++ opencv 混合编程
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 辛苦原创所得,转载请注明出处 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ...
- vMware存储:SAN配置基础
VMware存储不仅仅是将LUN映射给物理服务器这么简单.VMware vSphere允许系统管理员在一个物理机上创建多个虚拟机. 潜在的hypervisor和vSphere ESXi,能够使gues ...
- Yii2发送短信验证码完全解决方案
概述 在做项目的时候,需要用到短信发送验证码功能.不能不说Yii2的牛逼,很容易就搞定了.下面我整理一下具体功能和流程,分享给大家. 主要功能 通过Yii2 rules验证手机号 通过js验证是否为手 ...
- php......房屋租赁练习
多条件查询搜索页面,提交到当前页面处理 <?php include("../DB.class.php"); $db = new DB(); /*var_dump($_POST ...
- leetcode 889. Spiral Matrix III
On a 2 dimensional grid with R rows and C columns, we start at (r0, c0) facing east. Here, the north ...