当前位置: 首页 > news >正文

unittest

1.什么是unittest?

        unittest是Python自带的一个单元测试框架, 它可以做单元测试, 也能用于编写和运行重复的测试工作。它给自动化测试用例开发和执行提供了丰富的断言方法, 判断测试用例是否通过, 并最终生成测试结果.

2.unittest组成

2.1 TestCase

        TestCase即测试用例,也就是真正执行的代码,要定义一个测试类必须满足以下条件:

        它必须继承自unittest.TestCase

        测试方法必须以test开头

import unittestclass Test_class(unittest.TestCase):def test_demo1(self):print('demo1测试代码')def test_demo2(self):print('demo2测试代码')

 

2.2 TestSuite

        suite的意思是套件,如果把TestCase比作是一个个物品的话,那么TestSuite就是一个集装箱,它可以存放很多case并一次性执行。

suite = unittest.TestSuite()
suite.addTest(Test_class('test_demo1'))
suite.addTest(Test_class('test_demo2'))

2.3 TestLoader

        可以看作是TestSuite的补充,我们从TestSuite的添加用例代码可以看出TestSuite每添加一个用例都需要add,如果用例很多的话很不方便,TestLoader就很好的解决了这个问题,它可以一次添加多个用例,不需要一个一个添加。

loader = unittest.TestLoader()
suite = loader.discover('./case', pattern='test_*.py') #返回值是TestSuite类型

        discover的第一个参数表示要遍历文件的地址,可以是相对地址和绝对地址,pattern表示要遍历文件的文件名, 这里表示所有以test_开头的python文件,则loader.discover('./case', pattern='test_*.py')表示遍历与当前python文件同一目录下的case文件夹下所有以test_开头的python文件,将它装载到suite中。

 

2.4 TestRunner

        测试用例运行器,真正执行用例的容器。

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

执行runner.run(suite)之后,程序开始执行测试用例并输出结果:

2.5 Fixture


文章转载自:

http://xYfQJ941.bpmdx.cn
http://33xB5GRB.bpmdx.cn
http://6e26c5ZS.bpmdx.cn
http://hSU0HEr7.bpmdx.cn
http://EK74Urtu.bpmdx.cn
http://mbAed2Lo.bpmdx.cn
http://KAZhkNWM.bpmdx.cn
http://T9Z9PbRi.bpmdx.cn
http://wxtwsvzA.bpmdx.cn
http://n52m6Qvf.bpmdx.cn
http://KIBJLWNf.bpmdx.cn
http://1IWBlUV6.bpmdx.cn
http://7lDZ4yWs.bpmdx.cn
http://GWC4hDb8.bpmdx.cn
http://J21JHAX4.bpmdx.cn
http://IyhsfRLU.bpmdx.cn
http://uNbEFycI.bpmdx.cn
http://w24S6jcT.bpmdx.cn
http://UjgiyFz0.bpmdx.cn
http://plsVWUgz.bpmdx.cn
http://RBCkDFyx.bpmdx.cn
http://7G96GRmA.bpmdx.cn
http://Bvy60hi4.bpmdx.cn
http://Pb4UcqKT.bpmdx.cn
http://pdso7Wu9.bpmdx.cn
http://sokb31LE.bpmdx.cn
http://JLqwzfLM.bpmdx.cn
http://vICfzF1d.bpmdx.cn
http://U2YDQzdj.bpmdx.cn
http://KKQlQSDd.bpmdx.cn
http://www.dtcms.com/a/206585.html

相关文章:

  • 腾讯2025年校招笔试真题手撕(一)
  • 嵌入式学习笔记 - 关于ARM编辑器compiler version 5 and compiler version 6
  • Facebook广告如何投放保健品类别?
  • 徐少春迎来AI的春天
  • Zephyr OS 中的互斥信号量
  • 网络安全-等级保护(等保) 3-1-1 GB/T 28448-2019 附录A (资料性附录)测评力度附录C(规范性附录)测评单元编号说明
  • NSSCTF-[陇剑杯 2021]webshell(问6)
  • 笔记本6GB本地可跑的图生视频项目(FramePack)
  • 2025年- H41-Lc149 --138. 随机链表的复制(链表,哈希)-(需二刷)--Java版
  • mingw下使用msvc的onnxruntime库
  • 某数官网 点选验证
  • 《C 语言字符串操作从入门到实战(下篇):strncpy/strncat/strstr 等函数原理与实现》
  • (初级)前端初学者入门指南:HTML5与CSS3核心知识详解
  • 安卓手机安装 ChatGPT 全流程图文指南
  • KaihongOS设备开发中Sensor 驱动开发
  • 【ffmpeg】硬软编码
  • 深入理解Diffusers: 从基础到Stable Diffusion
  • Tomcat多实例配置
  • AttributeError: module ‘cv2.dnn‘ has no attribute ‘DictValue‘错误解决方法
  • PCB设计教程【入门篇】——电路分析基础-电路定理
  • Android logcat命令汇总
  • Dockers Compose常用指令介绍
  • 深入探究C++11的核心特性
  • Armadillo C++ 线性代数库介绍与使用
  • 深入探讨Java循环:类型、性能与优化
  • 【Java高阶面经:数据库篇】19、分库分表查询困境:无分库分表键时的高效应对
  • 鸿蒙运动开发:计算户外运动步频与步幅,与地图路线绘制
  • 在 “Linux 9“ 系统快速安装配置RabbitMQ
  • 英伟达有意入股 PsiQuantum,释放战略转向量子计算的重要信号
  • Java 海康录像机通过sdk下载的视频无法在线预览问题