本文为简单介绍,使用python自带模块unittest来进行单元测试

首先我们有一个需要测试的类,employee.py  定义了涨薪的方法。我们需要测试这个类的功能是否正确。

 class Employee():

     def __init__(self,firstName,lastName,money):
self.firstName = firstName
self.lastName = lastName
self.money = money def give_raise(self,add_money=5000):
self.money += add_money
return self.money

下面开始写单元测试模块  testEmployee.py

 import unittest
from employee import Employee  #导入需要测试的类
from HTMLTestRunner import HTMLTestRunner  #导入生成HTML格式测试报告的模块。 class TestEmployee(unittest.TestCase):  #需继承unittest.TestCase的类 def setUp(self):  #每个测试用例执行前,需要做的操作
self.em = Employee('jade','chang',10000)  #实例化一个雇员对象 def test_give_default_raise(self):  #测试默认涨薪幅度,是否正确,用例名称需以test开头,否则不会运行。
self.assertEqual(self.em.give_raise(),15000) def test_give_custom_raise(self):  #测试自定义涨薪幅度
self.assertEqual(self.em.give_raise(2000),12000) def report():
filepath = r'C:\Users\Administrator\Desktop\RaiseMoney.html'
fp=open(filepath,'wb')
suite = unittest.TestSuite()  #创建测试套件,将测试用例添加至套件中
suite.addTest(TestEmployee('test_give_default_raise'))
suite.addTest(TestEmployee('test_give_custom_raise'))
      #生成测试报告
runner=HTMLTestRunner(stream=fp,title='雇员涨薪', description='雇员信息执行结果')
runner.run(suite)
unittest.main()
fp.close()
if __name__ == '__main__':
report()

运行成功后,生成的测试报告 RaiseMoney.html 如下:

点击Detail,可展开每条测试用例的执行情况。

unittest常见的断言方法:

断言方法 描述
assertEqual(a,b) a == b
assertNotEqual(a,b) a != b
assertTrue(x) x 为True
assertFalse(x) x 为False
assertIn(item, list) item in list
assertNotIn(item, list) item not in list

备注:

HTMLTestRunner.py 下载链接:

链接:https://pan.baidu.com/s/1FIt_6wOVCF7ZxWSUD95OSA
提取码:44hu

Python单元测试unittest与HTMLTestRunner报告生成的更多相关文章

  1. Python单元测试unittest - 单元测试框架

    一.unittest简介 unitest单元测试框架最初是有JUnit的启发,它支持测试自动化,共享测试的设置和关闭代码,将测试聚合到集合中,以及测试与报告框架的独立性. 二.unittest相关概念 ...

  2. unittest中HTMLTestRunner模块生成

    unittest里面是不能生成html格式报告的,需要导入一个第三方的模块:HTMLTestRunner 一.导入HTMLTestRunner 方法1.这个模块下载不能通过pip安装了,只能下载后手动 ...

  3. python单元测试unittest

    单元测试作为任何语言的开发者都应该是必要的,因为时隔数月后再回来调试自己的复杂程序时,其实也是很崩溃的事情.虽然会很快熟悉内容,但是修改和 调试将是一件痛苦的事情,如果你在修改了代码后出现问题的话,而 ...

  4. [转]python单元测试unittest

    单元测试作为任何语言的开发者都应该是必要的,因为时隔数月后再回来调试自己的复杂程序时,其实也是很崩溃的事情.虽然会很快熟悉内容,但是修改和调试将是一件痛苦的事情,如果你在修改了代码后出现问题的话,而单 ...

  5. python单元测试unittest实例详解

    转自:http://blog.csdn.net/five3/article/details/7104466 单元测试作为任何语言的开发者都应该是必要的,因为时隔数月后再回来调试自己的复杂程序时,其实也 ...

  6. Python&Selenium&Unittest&BeautifuReport 自动化测试并生成HTML自动化测试报告

    一.摘要 本篇博文将介绍如何借助BeautifulReport和HTML模版,生成HTML测试报告的BeautifulReport 源码Clone地址为 https://github.com/Test ...

  7. Python单元测试框架之pytest 2 -- 生成测试报告

    From: https://www.cnblogs.com/fnng/p/4768239.html Python单元测试框架之pytest -- 生成测试报告 2015-08-29 00:40 by ...

  8. python单元测试unittest、setUp、tearDown()

    单元测试反应的是一种以测试为驱动的开发模式,最大的好处就是保证一个程序模块的行为符合我们设计的测试用例,在将来修改的时候,可以极大程度保证该模块行为仍然是正确的. 下面我编写一个Dict来,这个类的行 ...

  9. python模块学习之HTMLTestRunner模块生成HTML测试报告

    #!/usr/bin/env python #-*- coding:utf-8 -*- from HTMLTestRunner import HTMLTestRunner import time im ...

随机推荐

  1. LeetCode 第二题 Add Two Numbers 大整数加法 高精度加法 链表

    题意 You are given two non-empty linked lists representing two non-negative integers. The digits are s ...

  2. SSRF服务器端请求伪造

    SSRF漏洞原理 SSRF(Server-Side Request Forgery:服务器端请求伪造)是一种由恶意访问者构造形成由服务端发起请求的一个安全漏洞一般情况下,SSRF访问的目标是从外网无法 ...

  3. ZOJ1310-Robot (BFS)

    The Robot Moving Institute is using a robot in their local store to transport different items. Of co ...

  4. 《NVM-Express-1_4-2019.06.10-Ratified》学习笔记(5.21.1.10-加-6.4)Atomic_Operations

    5.21.1.10 Write Atomicity Normal 这个特性控制AWUN和NAWUN参数的操作.设置的属性值在set Feature命令的Dword 11中表明. 如果提交Get Fea ...

  5. Gin_渲染

    1. 各种数据响应格式 package main import ( "github.com/gin-gonic/gin" "github.com/gin-gonic/gi ...

  6. [CF1034A] Two Rabbits - 数学

    判断能否整除即可 #include <bits/stdc++.h> using namespace std; int x,y,a,b; int main() { int t; ios::s ...

  7. mycat linux上目录介绍

    1.本文引用来自mycat官方文档,具体可以浏览mycat官网 2.linux系统下面的目录 MyCAT 有提供编译好的安装包,支持 windows.Linux.Mac.Solaris 等系统上安装与 ...

  8. CTF——代码审计之变量覆盖漏洞writeup【2】

    题目: 基础: 所需基础知识见变量覆盖漏洞[1]  分析: 现在的$a=’hi’,而下面的函数需满足$a=’jaivy’才可以输出flag,那么需要做的事就是想办法覆盖掉$a原来的值. 那么出现的提示 ...

  9. excel用xlrd日期变成42631.0

    datetime的解决办法混合数据的表中有个日期:2016/9/18 通过table.row_values(row_number)[1]读取时,显示的结果为:42631.0 查看row_values方 ...

  10. FPGA设计的注意事项

    设计文档 一个完整的软件是由程序. 数据和文档三部分组成的. 在FPGA电路设计中, 撰写完善的设计文档是非常重要的. 对于一个比较复杂的设计来说, 各个子单元的功能各不相同, 实现的方法也不一样,各 ...