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-gridfs的安装
mongodb中gridfs适合存放视频和高清图片等等超大文件(小的文件建议不要存在mongodb中): 下面是在centos下配置nginx来訪问mongodb中的mp4文件: 1:安装nginx- ...
- linux下查找最耗iowait的进程
抓哪个进程干坏事前要先停掉syslogservice syslog stop 打开block dump:echo 1 > /proc/sys/vm/block_dump 统计:dmesg | e ...
- sql查询字段是否为空
sql 查询某字段为空 select * from 表名 where 字段名 is null sql 查询某字段不为空 select * from 表名 where 字段名 is not null s ...
- C#快速入门笔记(1)——基础语法
C#快速入门笔记(1)——基础语法 总体框架:
- 牛客小白月赛1 D 多项式乘法 【循环】
题目链接 https://www.nowcoder.com/acm/contest/85/D 思路 因为数据范围较小 ,所以 可以直接 一个一个乘 AC代码 #include <cstdio&g ...
- 20145229《Java程序设计》第四次实验报告
Android开发基础 实验要求 1.基于Android Studio开发简单的Android应用并部署测试; 2.了解Android组件.布局管理器的使用: 3.掌握Android中事件处理机制. ...
- <基于Qt与POSIX线程>多线程下载器的简易搭建
原创博客,转载请联系博主! 本项目已托管到本人Git远程库:https://github.com/yue9944882/Snow 项目目标 Major Functionality 开发环境: Ce ...
- FOJ 2213 简单几何
题意:给你两个圆的圆心坐标和半径,判断两个圆公切线数目. 思路:考虑两个圆间公切线的情况,两个圆的位置关系分为相离,相交,外切,内切,内含,重合,公切线数分别为4,2,3,1,0,-1. #inclu ...
- php执行外部命令函数:exec()、passthru()、system()、shell_exec()对比
PHP提供了4种方法执行系统外部命令:exec().passthru().system().shell_exec(),下面分别介绍: 1.exec 原型:string exec ( string $c ...
- Spring Cloud之Swagger2 API接口管理
随着微服务架构体系的发展和应用, 为了前后端能够更好的集成与对接,同时为了项目的方便交付,每个项目都需要提供相应的API文档. 来源:PC端.微信端.H5端.移动端(安卓和IOS端) 传统的API文档 ...