Python TestSuite生成测试报告过程解析


Posted in Python onJuly 23, 2020

简介:为每一个测试用例添加说明,那么将会使报告更加易读懂,工作中汇报数据的技巧
u"test_one方法"

HTMLTestRunner 是 Python 标准库的 unittest 模块的一个扩展,它可以生成 HTML的 测试报告,无法通过pip安装。

首先要下 HTMLTestRunner.py 文件,将下载的文件放入…\python\Lib目录下 (或者同个路径)

注意点:

python2和python3,语法不一样,导致HTMLTestRunner在python3不兼容

解决办法:导入课程资料里面修改好的HTMLTestRunner.py (该版本是网上的小伙伴修改好的)

# -*- coding: UTF-8 -*-
import unittest
import HTMLTestRunner
import time

class XdclassTestCase(unittest.TestCase):
  def setUp(self):
    self.age = 32
    self.name = "小D课堂"
    print(" setUp method=======")


  def tearDown(self):
    print(" tearDown method=======")
    #断言是否相同
    self.assertEqual('foo'.upper(), 'FOO')

  def test_one(self):
    u"test_one方法"
    print(" test_one 二当家小D 来了")
    #断言是否相同
    self.assertEqual(self.name, "小D课堂",msg="名字不对")

  def test_two(self):
    u"test_TWO方法说明"
    print(" test_two 前端 来了")
    #断言是否为 true, msg是断言错误的提示信息
    self.assertTrue('XD'.isupper(), msg="不是大写")
    
  def test_three(self):
    u"这是首页登录测试用例"
    print(" test_three 后端 来了")
    self.assertEqual(self.age,32)

  def test_four(self):
    print(" test_four 小D课堂官网上线啦 https://www.xdclass.net")
    self.assertEqual(self.age,32)

if __name__ == '__main__':
  suite = unittest.TestSuite()
  suite.addTest(XdclassTestCase("test_two"))
  suite.addTest(XdclassTestCase("test_one"))
  
  suite.addTest(XdclassTestCase("test_three"))
  suite.addTest(XdclassTestCase("test_four"))

  #verbosity参数可以控制执行结果的输出,0 是简单报告、1 是一般报告(默认)、2 是详细报告
  #runner = unittest.TextTestRunner(verbosity=2)
  #runner.run(suite)
  #文件名中加了当前时间,为了每次生成不同的测试报告
  file_prefix = time.strftime("%Y-%m-%d %H_%M_%S", time.localtime())
  print(file_prefix)
  #创建测试报告,此时这个文件还是空文件
  # wb 以二进制格式打开一个文件,只用于写入,如果文件存在则覆盖,不存在则创建
  fp = open("./"+file_prefix+"_result.html","wb")
  # stream定义一个测试报告写入的文件,title就是标题,description就是描述
  runner = HTMLTestRunner.HTMLTestRunner(stream=fp, title=u"小D课堂 测试报告",description=u"测试用例执行情况")
  
  runner.run(suite)
  fp.close()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python操作SQLite简明教程
Jul 10 Python
python内存管理分析
Apr 08 Python
python遍历目录的方法小结
Apr 28 Python
python基于itchat实现微信群消息同步机器人
Feb 27 Python
Python部署web开发程序的几种方法
May 05 Python
解决DataFrame排序sort的问题
Jun 07 Python
Python CSV文件模块的使用案例分析
Dec 21 Python
TensorFlow 输出checkpoint 中的变量名与变量值方式
Feb 11 Python
Django使用Profile扩展User模块方式
May 14 Python
Keras load_model 导入错误的解决方式
Jun 09 Python
Python 可视化神器Plotly详解
Dec 26 Python
python geopandas读取、创建shapefile文件的方法
Jun 29 Python
快速解释如何使用pandas的inplace参数的使用
Jul 23 #Python
Python分类测试代码实例汇总
Jul 23 #Python
基于Python3读写INI配置文件过程解析
Jul 23 #Python
Linux安装Python3如何和系统自带的Python2并存
Jul 23 #Python
Java爬虫技术框架之Heritrix框架详解
Jul 22 #Python
Python 绘制可视化折线图
Jul 22 #Python
python写文件时覆盖原来的实例方法
Jul 22 #Python
You might like
PHILIPS AE3805收音机的分析打磨
2021/03/02 无线电
在windows平台上构建自己的PHP实现方法(仅适用于php5.2)
2013/07/05 PHP
php的mkdir()函数创建文件夹比较安全的权限设置方法
2014/07/28 PHP
php实现简单加入购物车功能
2017/03/07 PHP
php中文语义分析实现方法示例
2019/09/28 PHP
js保存当前路径(cookies记录)
2010/12/14 Javascript
JavaScript中九种常用排序算法
2014/09/02 Javascript
nodejs中转换URL字符串与查询字符串详解
2014/11/26 NodeJs
JS实现鼠标滑过折叠与展开菜单效果代码
2015/09/06 Javascript
Angular.js与Bootstrap相结合实现表格分页代码
2016/04/12 Javascript
window.onload绑定多个事件的两种解决方案
2016/05/15 Javascript
JavaScript必知必会(五) eval 的使用
2016/06/08 Javascript
图片上传之FileAPI与NodeJs
2017/01/24 NodeJs
Javascript中的getter和setter初识
2017/08/17 Javascript
JS随机数产生代码分享
2018/02/24 Javascript
vue中将html字符串转换成html后遇到的问题小结
2018/12/10 Javascript
详解vue的数据劫持以及操作数组的坑
2019/04/18 Javascript
一看就会的vuex实现登录验证(附案例)
2020/01/09 Javascript
详解node.js 事件循环
2020/07/22 Javascript
vue 将多个过滤器封装到一个文件中的代码详解
2020/09/05 Javascript
[04:29]2014DOTA2国际邀请赛 主赛事第三日TOPPLAY
2014/07/21 DOTA
python向字符串中添加元素的实例方法
2019/06/28 Python
TensorFlow tensor的拼接实例
2020/01/19 Python
基于Python把网站域名解析成ip地址
2020/05/25 Python
全球销量第一生发产品:Viviscal
2017/12/21 全球购物
高三自我鉴定怎么写
2013/10/19 职场文书
个人简历中的自我评价怎么写
2014/01/26 职场文书
房地产项目策划书
2014/02/05 职场文书
诉讼财产保全担保书
2014/05/20 职场文书
电气工程及其自动化专业求职信
2014/06/23 职场文书
学校领导班子成员查摆问题及整改措施
2014/10/28 职场文书
学术会议通知范文
2015/04/15 职场文书
如何做好工作总结!
2019/04/10 职场文书
Pytorch 如何加速Dataloader提升数据读取速度
2021/05/28 Python
vue项目中的支付功能实现(微信支付和支付宝支付)
2022/02/18 Vue.js
MySql分区类型及创建分区的方法
2022/04/13 MySQL