Python单元测试unittest与HTMLTestRunner报告生成

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

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

 1 class Employee():
 2
 3     def __init__(self,firstName,lastName,money):
 4         self.firstName = firstName
 5         self.lastName = lastName
 6         self.money = money
 7
 8     def give_raise(self,add_money=5000):
 9         self.money += add_money
10         return self.money

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

 1 import unittest
 2 from employee import Employee  #导入需要测试的类
 3 from HTMLTestRunner import HTMLTestRunner  #导入生成HTML格式测试报告的模块。
 4
 5 class TestEmployee(unittest.TestCase):  #需继承unittest.TestCase的类
 6
 7     def setUp(self):  #每个测试用例执行前,需要做的操作
 8         self.em = Employee(‘jade‘,‘chang‘,10000)  #实例化一个雇员对象
 9
10     def test_give_default_raise(self):  #测试默认涨薪幅度,是否正确,用例名称需以test开头,否则不会运行。
11         self.assertEqual(self.em.give_raise(),15000)
12
13     def test_give_custom_raise(self):  #测试自定义涨薪幅度
14         self.assertEqual(self.em.give_raise(2000),12000)
15
16 def report():
17     filepath = r‘C:\Users\Administrator\Desktop\RaiseMoney.html‘
18     fp=open(filepath,‘wb‘)
19     suite = unittest.TestSuite()  #创建测试套件,将测试用例添加至套件中
20     suite.addTest(TestEmployee(‘test_give_default_raise‘))
21     suite.addTest(TestEmployee(‘test_give_custom_raise‘))      #生成测试报告
22     runner=HTMLTestRunner(stream=fp,title=‘雇员涨薪‘, description=‘雇员信息执行结果‘)
23     runner.run(suite)
24     unittest.main()
25     fp.close()
26 if __name__ == ‘__main__‘:
27     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

原文地址:https://www.cnblogs.com/fish-zhang/p/12084326.html

时间: 2024-08-26 16:17:41

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

python_单元测试unittest测试报告HTMLTestRunner

前提:导入HTMLTestRunner模块--将HTMLTestRunner.py放入python环境变量目录(通过sys.path查看) 步骤1. 创建Testsuite对象 -- unittest.test() 步骤2. 将用例加入到Testsuite -- suite.addTest(GetUserTest('test_get_user')) 步骤3. 创建文件保存测试结果,设置报告内容 -- 注意必须是二进制wb 步骤4. 以报告模版运行testSuite 注意:不能用pycharm的u

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

一.摘要 本篇博文将介绍如何借助BeautifulReport和HTML模版,生成HTML测试报告的BeautifulReport 源码Clone地址为 https://github.com/TesterlifeRaymond/BeautifulReport,其中 BeautifulReport.py和其template是我们需要的关键. 二.BeautifulReport 如下代码是BeautifulReport.py的源码,其中几个注释的地方需要注意,将其集成进自己的自动化框架时需要做相应的

python单元测试unittest

Python中有一个自带的单元测试框架是unittest模块,用它来做单元测试,它里面封装好了一些校验返回的结果方法和一些用例执行前的初始化操作. 在说unittest之前,先说几个概念: TestCase 也就是测试用例 TestSuite 多个测试用例集合在一起,就是TestSuite TestLoader是用来加载TestCase到TestSuite中的 TextTestRunner是来执行测试用例的,测试的结果会保存到TextTestResult实例中,包括运行了多少测试用例,成功了多少

python单元测试-unittest

python内部自带了一个单元测试的模块,pyUnit也就是我们说的:unittest 1.介绍下unittest的基本使用方法: 1)import unittest 2)定义一个继承自unittest.TestCase的测试用例类 3)定义setUp和tearDown,在每个测试用例前后做一些辅助工作. 4)定义测试用例,名字以test开头. 5)一个测试用例应该只测试一个方面,测试目的和测试内容应很明确.主要是调用assertEqual.assertRaises等断言方法判断程序执行结果和预

python单元测试unittest框架

环境:PyCharm 2016.2 + python 3.5 待测试的类:(Widget.py) 测试类:(Auto.py) 测试结果: 总结:1.第一步:先写好测试类2.第二步:导入unittest模块及测试的类,运用setup()方法做测试前的准备工作,如建立数据库连接,运用teardown()方法做测试后的清除工作,如取消数据库的链接,再对类中的方法逐一做测试.3.第三步: 写suite()的全局方法,将要测试的方法,一一加入.测试结果,有几个测试用例就有几个. 最后显示OK,表示通过.

python 单元测试unittest

单元测试可以帮助我们准确迅速地定位出现问题的模块和单元. 单元测试的对象是函数,必须有输出结果(哪怕是异常输出),以便单元测试模块能够捕获返回值,并且与预期值进行比较,从而得出测试通过与否 单元测试的加载可以通过unittest.main()来启动单元测试的测试模块. 而testsuit里存放的就是单元测试的用例,下面分别列出了2种方法的使用. setUp():             每个测试函数运行前运行 tearDown():        每个测试函数运行完后执行 setUpClass(

Python单元测试--使用装饰器实现测试跳过和预期故障

Python单元测试unittest中提供了一下四种装饰器实现测试跳过和预期故障.(使用Python 2.7.13) 请查考Python手册中: https://docs.python.org/dev/library/unittest.html The following decorators implement test skipping and expected failures: #以下装饰器实施测试跳过和预期故障: @unittest.skip(原因) Unconditionally s

深入解读Python的unittest并拓展HTMLTestRunner

unnitest是Python的一个重要的单元测试框架,对于用Python进行开发的同事们可能不需要对他有过深入的了解会用就行,但是,对于自动化测试人员我觉得是要熟知unnitest的执行原理以及相关模块的作用.我这边提几个简单的需求如下: 1.如何利用unnitest执行流程测试而非单元测试.比如我们可能利用selenium+unnitest来跑一段流程,比如test1里面我们实现登陆,test2在test1成功登陆的基础上,实现一个查询的测试,test3我们查询一些数据后,页面选择性提交数据

Python单元测试框架unittest之深入学习

前言 前几篇文章该要地介绍了python单元测试框架unittest的使用,本篇文章系统介绍unittest框架. 一.unittest核心工作原理 unittest中最核心的四个概念是:test case, test suite, test runner, test fixture. 下面我们分别来解释这四个概念的意思,先来看一张unittest的静态类图(下面的类图以及解释均来源于网络,原文链接): 一个TestCase的实例就是一个测试用例.什么是测试用例呢?就是一个完整的测试流程,包括测