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对象的深拷贝和浅拷贝详解
Aug 25 Python
python关闭windows进程的方法
Apr 18 Python
python shell根据ip获取主机名代码示例
Nov 25 Python
Python 循环语句之 while,for语句详解
Apr 23 Python
浅谈python下tiff图像的读取和保存方法
Dec 04 Python
Django基础知识 web框架的本质详解
Jul 18 Python
Python学习笔记之For循环用法详解
Aug 14 Python
Python使用贪婪算法解决问题
Oct 22 Python
Python递归及尾递归优化操作实例分析
Feb 01 Python
pytorch:model.train和model.eval用法及区别详解
Feb 20 Python
python Polars库的使用简介
Apr 21 Python
python实现剪贴板的操作
Jul 01 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
php获取字符串中各个字符出现次数的方法
2015/02/23 PHP
PHP封装的page分页类定义与用法完整示例
2018/12/24 PHP
PHP实现数组根据某个字段进行水平合并,横向合并案例分析
2019/10/08 PHP
javascript parseInt与Number函数的区别
2010/01/21 Javascript
用js模拟JQuery的show与hide动画函数代码
2010/09/20 Javascript
javascript奇异的arguments分析
2010/10/20 Javascript
document.write()及其输出内容的样式、位置控制
2013/08/12 Javascript
js的alert弹出框出现乱码解决方案
2013/09/02 Javascript
jQuery 仿百度输入标签插件附效果图
2014/07/04 Javascript
理解JavaScript事件对象
2016/01/25 Javascript
jQuery实现的导航动画效果(附demo源码)
2016/04/01 Javascript
星期几的不同脚本写法(推荐)
2016/06/01 Javascript
Vue0.1的过滤代码如何添加到Vue2.0直接使用
2017/08/23 Javascript
Bootstrap框架建立树形菜单(Tree)的实例代码
2017/10/30 Javascript
详解使用 Node.js 开发简单的脚手架工具
2018/06/08 Javascript
vue强制刷新组件的方法示例
2019/02/28 Javascript
在Vue项目中使用jsencrypt.js对数据进行加密传输的方法
2019/04/17 Javascript
layui table表格数据的新增,修改,删除,查询,双击获取行数据方式
2019/11/14 Javascript
vue页面引入three.js实现3d动画场景操作
2020/08/10 Javascript
Python参数类型以及常见的坑详解
2019/07/08 Python
HTML的form表单和django的form表单
2019/07/25 Python
Python中的相关分析correlation analysis的实现
2019/08/29 Python
python3 BeautifulSoup模块使用字典的方法抓取a标签内的数据示例
2019/11/28 Python
python3.x 生成3维随机数组实例
2019/11/28 Python
Python 中如何实现参数化测试的方法示例
2019/12/10 Python
在pycharm中文件取消用 pytest模式打开的操作
2020/09/01 Python
英国最大的汽车配件在线商店:Euro Car Parts
2019/09/30 全球购物
国庆节活动总结
2014/08/26 职场文书
大学生党员自我剖析材料
2014/10/06 职场文书
2014小学数学教研组工作总结
2014/12/06 职场文书
2015年服务员工作总结
2015/04/08 职场文书
2015年药店工作总结
2015/04/20 职场文书
会计试用期工作总结2015
2015/05/28 职场文书
Ajax常用封装库——Axios的使用
2021/05/08 Javascript
如何正确理解python装饰器
2021/06/15 Python
Java多条件判断场景中规则执行器的设计
2021/06/26 Java/Android