python单元测试-unittest

一文掌握python单元测试unittest(一) 本文将详细介绍unittest的各种功能,包括测试用例、测试固件、断言方法、测试套件、测试运行器、数据驱动测试、高级应用。 阅读详情

一、单元测试,集成测试,功能测试

单元测试

集成测试

功能测试

 

Unittest重要组成

 

TestFixture

作用: 用于一个测试环境的准备和销毁还原。

功能:     当测试用例每次执行之前需要准备测试环境,每次测试完成后还原测试环境,比如执行前连接数据库、打开浏览器等,执行完成后需要还原数据库、关闭浏览器等操作。这时候就可以启用testfixture

主要方法:

setUp():准备环境,执行每个测试用例的前置条件;
tearDown():环境还原,执行每个测试用例的后置条件;
setUpClass():必须使用@classmethod装饰器,所有case执行的前置条件,只运行一次;
tearDownClass():必须使用@classmethod装饰器,所有case运行完后只运行一次;

TestCase:测试用例

定义 :一个类class继承 unittest.TestCase,就是一个测试用例

什么是测试用例?

就是一个完整的测试流程,包括测试前准备环境的搭建(setUp),执行测试代码(run),以及测试后环境的还原(tearDown)。

测试用例命名规则

继承自unittest.TestCase的类中,测试方法的名称要以test开头。且只会执行以test开头定义的方法(测试方法),测试用例执行的顺序会按照方法名的ASCII值排序。
   如果想跳过某个测试用例,需要添加@unittest.skip)(‘描述信息')

import unittest
class Calc_testcase(unittest.TestCase):
    def setUp(self) :  #测试用例方法执行前的操作
        print("start")
    def test1(self):   #测试用例
        resl = 4
        self.assertEqual(resl,5)
def tearDown(self) :  #测试用例方法执行后的操作
        print("end")
if __name__ =="__main__":
    unittest.main()       #调用测试用例中以test开头的方法

TestSuite

测试套件,可以将多个测试用例集合在一起,能一起执行选中的测试用例

方式一:
suite = unittest.TestSuite()#创建测试套件
case_list = [“test1”,”test2”….]
For case in case_list:
	suite.addTest(类名(case))
方式二:
suite = unittest.TestSuite()#创建测试套件
        suite.addTest(类名 (“test1“))
        suite.addTest(类名 (“test2“))
方式三:
suite = unittest.TestSuite()#创建测试套件
loader = unittest.TestLoader()# 创建一个加载对象 
suite .addTest(loader.loadTestsFromTestCase(类名))

TextRunner

执行测试用例

​ 通过TextTestRunner类提供的run()方法来执行test suite/test ca

格式:

runner = unittest.TextTestRunner(verbosity=2)
runner.run(suite)

断言

 

生成测试报告

html格式的就是HTMLTestRunner了,HTMLTestRunner是 Python 标准库的 unittest 框架的一个扩展,它可以生成一个直观清晰的 HTML 测试报告。使用的前提就是要下载 HTMLTestRunner.py

 

操作

代码展示

对开发的代码块进行单元测试

 #开发被测代码
class Calc():
    def add(self,a,b):
        c =a+b
        return c
    def redc(self,a,b):
        c = a-b
        print(c)
if __name__ == "__main__":
    c = Calc()
    c.add(2,3)
    print(c.add(2,3))
#单元测试代码
from day.Calc import Calc
import  unittest
c = Calc()  #实例化开发的类
class Test(unittest.TestCase):#unittest单元测试类必须继承unittest.TestCase
    def setUp(self): #测试用例之前执行
        print("start")
    def test001(self):#测试用例必须test开头
        res = c.add(2,1)   #调取相加的方法
        self.assertEqual (res,5)  #断言,预期结果和实际结果的对比
    def test002(self):#测试用例必须test开头
        res = c.redc(2,3)   #调取相减的方法
        self.assertEqual (res,-1)  #断言,预期结果和实际结果的对比
    def tearDown(self):#测试用例结束之后执行
        print("end")
if __name__ == '__main__':
    unittest.main()

读取文件

读取xml文件

from xml.dom import minidom
class Readxml():
    def read_xml(self,filename,onename,twoname):
        root =minidom.parse(filename)
        firstnode =root.getElementsByTagName(onename)[0]
        secondnode=firstnode.getElementsByTagName(twoname)[0].firstChild.data
        return secondnode

读取csv文件

import csv   #导入csv模块
class ReadCsv():
    def read_csv(self):
        item =[]    #定义一个空列表
        c = csv.reader(open("../commonDemo/test1.csv","r"))    #得到csv文件对象
        for csv_i in c:
            item.append(csv_i)      #将获取的数据添加到列表中
        return item
            
r = ReadCsv()
print(r.read_csv())

作业

 csv

 xml

 

 

 

python单元测试之UnitTest 本文介绍了Python测试框架基础知识,重点对比了unittest和pytest两大主流框架。主要内容包括: 常用测试框架列举(pytest、unittest等)及其优势 unittest框架特点:官方维护、xUnit家族、简单易学但扩展性不足 基本测试用例编写方法(继承TestCase、test_*方法、断言) 高级功能:数据驱动测试(DDT)和HTML报告生成 unittest与pytest的核心差异(用例规则、夹具、断言等) unittest的五大核心组件和多种运行方式(命令行、main函数等) 文章 阅读详情

相关推荐

Python单元测试unittest

1.单元测试 对功能/代码的最小单元进行测试。 对函数或者类当中的方法进行测试就是单元测试。 在python当中进行测试时,使用assert,而不是if... 语法:assert预期结果 ==实际结果 当使用assert进行断言时,如果测试通过,程序正常执行,测试不通过会报错AssertionError # if actual == expected: # print('ok') # else: # print('not ok') # assert 断言 assert a..

Ly_LittleStar的博客 1670

计算器app界面,做appium自动化测试,做加减乘除等操作,基于python3 unittest框架

计算器app界面,做appium自动化测试,做加减乘除等操作,基于unittest框架,代码如下: from appium import webdriver from time import sleep import unittest from appium.webdriver.common.touch_action import TouchAction class TestItest(un...

xiezhiming1234的博客 3738

python单元测试unittest

一:单元测试,集成测试,功能测试 单元测试 颗粒度最小,一般由开发小组采用白盒方式来测试,主要测试单元是否符合“设计”;是指对软件中的最小可 测试单元进行检查和验证 集成测试 介于单元测试和系统测试之间,一般由开发小组采用白盒+黑盒的方法来测试,即验证“设计”又验证“需 求”。主要用来测试模板与模板之间的接口,同时还要测试一些主要的业务功能 功能测试 颗粒度最大,一般由独立的测试小组采用黑盒的方式来测试,主要测试系统是否符合“需求规格说明书 二:Unittest重要组成 Python中有一个

L975583588的博客 521

【Python+unintest实例学习】用assert断言测试计算器Calculator代码,再次熟悉TestSuite和TextTestRunner

文件名称:Calculator。一段用python编写的计算器Calculator代码 def add(x,y): return x + y def sub(x,y): return x - y 文件名称:test36 。这是单元测试代码:测试用例代码 # _*_ coding: utf-8 _*_ from unittest import TestCase, main...

王怕怕升职记 454

Python:Unittest单元测试框架

​单元测试 1、单元测试(unit testing),是指对软件中的最小可测试代码单元进行检查和验证 ⑴是针对于代码的一种测试方法,测试的是代码 2、对于"代码单元"中单元的含义,一般来说,要根据实际情况去判定其具体含义: ⑴如C语言中单元指一个函数、Java里单元指一个类、图形化的软件中可以指一个窗口或一个菜单等 ⑵单元可以是一个函数、方法、类、功能模块或者子系统 ⑶总的来说,单元就是人为规定的最小的被测功能模块 3、单元测试针对的是每一个独立的代码单元,代码单元应不...

不怕猫的耗子A 2万+

004.PADS VX2.4常用快捷键及无模命令

PADS系列文章

qq_36492361的博客 4967

计算器测试

标准型下: 序号 操作 期望结果 实际结果 是否通过   1:    除0操作 报错 报错 pass   2: 最大值+1   3: 最大值+2   4: 最小值-1   5: 负数开方   6: 0开方   7: 正数开方   8: 小数开方   9: 退格键   10:CE功能 清除一个数   11:C功能   清除所有数

小爷我不嘚瑟 5417

别再乱点U盘里的.exe了!手把手教你清除‘Usb Disk.exe’病毒并恢复隐藏文件

本文详细介绍了如何识别和清除U盘病毒(如Usb Disk.exe),并提供从终止病毒进程到恢复隐藏文件的完整步骤。通过禁用自动播放、清理注册表和使用命令行工具,帮助用户彻底清除病毒并预防未来感染,确保数据安全。

weixin_42530732的博客 596

一个Python单元测试的例子

Eric书中《Python编程从入门到实践中的一个例子》。首先定义了一个测试函数: namefunction.py #-*- coding:cp936 -*- def get_formmed_name(first, last): """该函数根据姓和名生成一个完整的姓名""" full_name = first + ' ' + last return full_name.tit

浪潮之巅的专栏 4255

U8采购入库单CO接口开发实战:加载、新增与删除操作详解

本文详细解析了用友U8采购入库单CO接口的开发实战,重点介绍了加载、新增与删除三大核心操作的实现方法。通过C#代码示例和实际项目经验,帮助开发者高效处理采购入库单,提升企业供应链管理效率。文章还涵盖了环境配置、异常处理、性能优化等关键技巧,适合U8二次开发人员参考。

weixin_33462927的博客 377

Android 12.0 系统systemui状态栏下拉左滑显示通知栏右滑显示控制中心模块的流程分析

在android12.0的系统rom定制化开发中,在系统原生systemui进行自定义下拉状态栏布局的定制的时候,需要在systemui下拉状态栏下滑的时候,根据下滑坐标来 判断当前是滑出通知栏还是滑出控制中心模块,所以就需要根据屏幕宽度,来区分x坐标值为多少是左滑出通知栏或者右滑出控制中心模块,接下来分析下 状态栏下滑坐标等相关功能代码分析

安卓兼职framework和app工程师的博客 2769

Python自动单元测试实例

Python unittest模块的相关用法待测源码类:widget.py#!/usr/bin/env python class Widget: def __init__(self, size = (40, 40)): self._size = size def getSize(self): return self._size def resize(self, width, height): if width

阳光岛主 1万+

人工智能机器学习基础篇】——深入详解强化学习 基础知识,理解马尔可夫决策过程(MDP)、策略、价值函数等关键概念

人工智能机器学习基础篇】——深入详解强化学习 基础知识,理解马尔可夫决策过程(MDP)、策略、价值函数等关键概念

编程技术探索者,分享C/C++、C#、Java、数据库等开发经验,聚焦实战技巧与AI兴趣,助力编程爱好者成长。 1928

Python单元测试框架unittest入门

单元测试是一种软件测试方法,是测试最小的可测试单元,通常是一个函数或一个方法。在软件开发过程中,单元测试作为一项重要的测试方法被广泛应用。

2301_78276982的博客 1276

RabbitMQ高级特性 - 生产者消息确认机制

为了保证信息 从生产者 发送到 队列,因此引入了生产者的消息确认机制.通过事务机制实现.通过发送确认机制(confirm 和 return)实现.因为事务机制比较消耗性能,在实际工作中用的也不多,因此这里主要介绍confirm 和 return机制来实现发送放的确认.a)confirm 确认模式如上图,confirm 确认模式主要保障于 生产者 到 交换机 的消息可靠性.如果 Exchange成功收到消息,那么 ConfirmCallback 这个回调 ack 参数就为true。

CYK_byte的博客 1886

5分钟快速上手:用AI生成3D虚拟场景的保姆级教程

你是否想过:不用学复杂的3D建模软件,不用懂“多边形”“UV贴图”这些专业术语,也能快速生成一个梦幻的森林、未来感的城市,甚至外太空基地?本文的目的就是教完全没接触过3D技术的新手,用AI工具5分钟生成3D虚拟场景。我们会覆盖主流AI工具的选择、提示词编写技巧、生成后的简单调整,以及常见问题解决。本文会像“游戏任务指南”一样,从“认识工具”→“写提示词”→“生成场景”→“调整优化”逐步讲解,最后还会教你把生成的3D场景用起来!提示词:你给AI的“订单备注”,越详细效果越好。扩散模型。

AI 原生应用开发的博客 1969

详解Python单元测试unittest

我们在后续进行持续集成的时候,要让代码自动运行,就会用到Jenkins了,但是上面产生的测试报告都是html格式的,Jenkins不认识,就在Jenkins里面显示不出来。runner = HTMLTestRunner.HTMLTestRunner(stream=fp,title='all_tests',description='所有测试情况')TestRunner是来执行测试用例的,测试的结果会保存到TestResult实例中,包括运行了多少测试用例,成功了多少,失败了多少等信息。

kk_lzvvkpj的博客 717

1553B总线介绍及其硬件方案设计

军用1553B总线 1.简介 简单介绍可参考(https://blog.youkuaiyun.com/ScilogyHunter/article/details/108444231)博主写的很详细。 1553B总线是MIL-STD-1553总线的简称,其中B就是BUS,MIL-STD-1553B总线是飞机内部时分制命令/响应式多路复用数据总线。1553B数据总线标准是20世纪70年代由美国公布的一种串行多路数据总线标准。1553B总线能挂31个远置终端,1553B总线采用指令/响应型通信协议,它有三种终端类型: BC:

小幽余生不加糖 1万+

Python接口自动化浅析unittest单元测试原理

以下主要介绍unittest特性、运行流程及实际案例。

m0_70669463的博客 1128

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Python接口自动化之unittest单元测试

按照阶段来分,一般就是单元测试,

2301_78843735的博客 1084

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Python的单元测试框架 —— unittest

说到 Python 的单元测试框架,想必接触过 Python 的朋友脑袋里第一个想到的就是unittest。的确,作为 Python 的标准库,它很优秀,并被广泛用于各个项目。但你知道吗?其实在 Python 众多项目中,主流的单元测试框架远不止这一个。本系列文章将为大家介绍目前流行的 Python 的单元测试框架,讲讲它们的功能和特点并比较其异同,以让大家在面对不同场景、不同需求的时候,能够权衡利弊,选择最佳的单元测试框架。

2401_83396248的博客 1243

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Python 单元测试、unittest断言

Python 单元测试 原文来自https://www.freecodecamp.org/news/an-introduction-to-testing-in-python/ An Introduction to Unit Testing in Python Goran Aviani Python 标准库中有一个名为 unittest 的模块,其中包含用于测试代码的工具。单元测试检查函数行为的所有特定部分是否正确,这将使它们与其他部分的集成更容易。 测试用例是单元测试的集合,它们共同证明.

野猫炫的博客 724

Python 如何使用 unittest 模块编写单元测试

单元测试是对软件中的最小可测试单元(通常是函数或方法)进行验证的过程。其主要目的是确保每个单元在独立运行时能够正确地执行预期的功能。提高代码质量:及时发现和修复潜在的错误。方便重构:在对代码进行修改时,运行测试确保现有功能没有受到影响。提高开发效率:自动化测试减少了手动测试的时间和精力。unittest是 Python 的内置模块,遵循 xUnit 测试框架的结构。它提供了一系列工具和类,使得编写、运行和组织测试变得简单和清晰。使用unittest创建测试用例组织测试套件运行测试。

chusheng1840的博客 1081

python单元测试之unittest

单元测试,集成测试,功能测试 单元测试 颗粒度最小,一般由开发小组采用白盒方式来测试,主要测试单元是否符合“设计”;是指对软件中的最小可测试单元进行检查和验证 集成测试 介于单元测试和系统测试之间,一般由开发小组采用白盒+黑盒的方法来测试,即验证“设计”又验证“需求”。主要用来测试模板与模板之间的接口,同时还要测试一些主要的业务功能。 功能测试 颗粒度最大,一般由独立的测试小组采用黑盒的方式来测试,主要测试系统是否符合“需求规格说明书 什么是白盒测试,什么是黑盒测试 白盒:主要

weixin_66336481的博客 1327

Python3 unittest单元测试

单元测试老生常谈了,但是测试要会单元测试还是近几年在国内流行起来的,测试开发岗位那是必备技能了,所以这个单元测试还是要接触下,就算以后的岗位中用不上,但万一面试时问到单元测试,也不至于太狼狈,或者学到这个技能不是不可以往测试开发岗位发展下。我们看下python怎么实现单元测试。  python的优点想必大家已经很了解了,现在想到要单元测试,那么肯定有牛人已经探好路子,并研发了这个模块,我们用就好了...

奋力的小白的博客 2562

python unittest单元测试

python单元测试框架 unittest官方文档 https://docs.python.org/2.7/library/unittest.html unittest不仅适用于单元测试,还可以适用于Web自动化测试用例的开发和执行 unittest核心要素 TestCase TestCase实例是一个测试用例,就是一个完整的测试流程,包括测试前的准备环境的搭建(setUp),执行测试代码(run),以及测试后环境的还原(tearTown)。 一个测试用例就是一个完整的测试单元 TestSuite 多个测

Come_on_csdn的博客 267
上一篇: Python面向对象(三)
下一篇: 单元测试之pytest
七凉@
博客等级 码龄6年 5粉丝 56原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值