本文为简单介绍,使用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. 4P遇上了5P

    (1)4P工作要素:任何一位从业者,都应该好好想想自己工作的初衷是什么?你将自己所从事的工作又是定位在什么位置?而这份工作的视角又有多宽.多广?最后是你会在某个周期内完成工作或者是实现突破. (2)5 ...

  2. 图灵,咕泡,鲁班学院--Java高级架构师-互联网企业级实战VIP课程(价值6380)

    课程介绍:        讲课内容涉及Java互联网技术工程框架.应用框架.        性能调优 (Tomcat Nginx JVM)         分布式框架(并发编程 Zookeeper N ...

  3. vjudge 骨牌覆盖

    原题链接:https://vjudge.net/contest/331993#problem/B 在2*N的一个长方形方格中,用一个1*2的骨牌排满方格. 问有多少种不同的排列方法. 例如:2 * 3 ...

  4. UVa 12050 - Palindrome Numbers (回文数)

    A palindrome is a word, number, or phrase that reads the same forwards as backwards. For example, th ...

  5. java 类型判断

    //java 类型匹配测试 Circle circle = new Circle(); // circle rectangle 实现了 shape System.out.println(circle ...

  6. 165.扩展User模型-继承AbstractBaseUser

    继承自AbstractBaseUser模型 如果你想要修改默认的验证方式,并且对于User模型上的一些字段不想要,那么可以自定义一个模型,然后继承自AbstractBaseUser,再添加你想要的字段 ...

  7. python之路模块

    time模块 print time.time() print time.mktime(time.localtime()) print time.gmtime() #可加时间戳参数 print time ...

  8. 复制文件或目录命令 - cp

    1) 命令名称:cp 2) 英文原意:copy 3) 命令所在路径:/bin/cp 4) 执行权限:所有用户 5) 功能描述:复制文件或目录 语法: cp -rp [原文件或目录][目标目录] -r ...

  9. LoadRunner使用记录

    基本术语 性能测试--通过自动化的测试工具模拟多种正常.峰值以及异常负载条件来对系统的各项性能指标进行测试. 负载测试和压力测试都属于性能测试,两者可以结合进行. 负载测试,确定在各种工作负载下系统的 ...

  10. HTML备忘

    a标签事件 a:link {color: #000000} /* 未访问的链接 */ a:visited {color: #d90a81} /* 已访问的链接 */ a:hover {color: # ...