Unittest单元测试之unittest用例执行顺序

news2024/12/23 14:21:18

unittest用例执行顺序

当在一个测试类或多个测试模块下,用例数量较多时,unittest在执行用例 (test_xxx)时,并不是按从上到下的顺序执行,有特定的顺序。

unittest框架默认根据ACSII码的顺序加载测试用例,数字与字母的顺序为: 0~9,A~Z,a~z。

对于类来说,class TestAxx 会优先于class TestBxx被执行。对于方法来说,test_aaa()方法会有优先于test_bbb()被执行。对于测试目录与测试文件来说,unittest同样是按照这个规则来加载测试用例的。

方式一、通过测试用例的方法名称:根据ACSII码的顺序加载测试用例

代码示例:

# 测试用例的执行顺序
# 1,通过测试用例的方法名称:根据ACSII码的顺序加载测试用例
import unittest
class Test_case(unittest.TestCase):
 
    # 进行初始化和清理工作
    def setUp(self):
        print("我是setUp方法,进行测试前的初始化工作")
    def tearDown(self) -> None:  # 表示该方法没有返回值
        print("我是tearDown方法,执行测试后的清除工作")
 
    # 测试用例
    def test_bbb(self):  # 判断是否在里面
        name = ["张飞","马怒","李四"]
        self.assertIn("马怒",name)
        print("测试test_bbb执行结束")
 
    def test_ccc(self):  # 判断4>2
        self.assertGreater(4,2)
        print("测试test_ccc执行结束")
 
    def test_aaa(self):
        a = True
        self.assertTrue(a)  # 判断是否为真
        print("测试test_aaa执行结束")
 
if __name__ == '__main__':
    unittest.main()

查看执行结果:

方式二、通过addtest()添加用例的顺序

代码示例:

# 测试用例的执行顺序
# 2,通过addtest()添加用例的顺序
import unittest
class Test_case(unittest.TestCase):
    # 进行初始化和清理工作
    def setUp(self):
        print("我是setUp方法,进行测试前的初始化工作")
    def tearDown(self) -> None:  # 表示该方法没有返回值
        print("我是tearDown方法,执行测试后的清除工作")
 
 
    def test_bbb(self):  # 判断是否在里面
        name = ["张飞","马怒","李四"]
        self.assertIn("马怒",name)
        print("测试test_bbb执行结束")
 
    def test_ccc(self):  # 判断4>2
        self.assertGreater(4,2)
        print("测试test_ccc执行结束")
 
    def test_aaa(self):
        a=True
        self.assertTrue(a)  # 判断是否为真
        print("测试test_aaa执行结束")
 
 
if __name__ == '__main__':
    suite = unittest.TestSuite()  # 测试套件实例
    suite.addTest(Test_case("test_bbb"))  # 类名(方法名称)
    suite.addTest(Test_case("test_aaa"))
    suite.addTest(Test_case("test_ccc"))
    unittest.main(defaultTest="suite")

查看执行结果

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你! 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1277796.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

有文件实体的后门无文件实体的后门rootkit后门

有文件实体后门和无文件实体后门&RootKit后门 什么是有文件的实体后门: 在传统的webshell当中,后门代码都是可以精确定位到某一个文件上去的,你可以rm删除它,可以鼠标右键操作它,它是有一个文件实体对象存在的。…

ClassCMS2.4漏洞复现

CMS源码在附件中 环境搭建 使用phpstudy2016搭建web环境,php版本为5.5 安装CMS 这里选择Mysql数据库进行安装 用户名和密码都写默认的admin方便记忆 输入完成后点击安装 点击安装 CMS的安装过程中有个报错忽略就好,登录不进后台的话刷新一下页面 进入了C…

1688API接口系列,1688开放平台接口使用方案(商品详情数据+搜索商品列表+商家订单类)

1688商品详情接口是指1688平台提供的API接口,用于获取商品详情信息。通过该接口,您可以获取到商品的详细信息,包括商品标题、价格、库存、描述、图片等。 要使用1688商品详情接口,您需要先申请1688的API权限,并获取ac…

LeetCode - 965. 单值二叉树(C语言,二叉树,配图)

二叉树每个节点都具有相同的值,我们就可以比较每个树的根节点与左右两个孩子节点的值是否相同,如果不同返回false,否则,返回true。 如果是叶子节点,不存在还孩子节点,则这个叶子节点为根的树是单值二叉树。…

Course2-Week1-神经网络

Course2-Week1-神经网络 文章目录 Course2-Week1-神经网络1. 神经网络概述1.1 欢迎来到Course21.2 神经元和大脑1.3 引入神经网络-需求预测1.4 神经网络的其他示例-图像感知 2. 神经网络的数学表达式2.1 单层的神经网络-需求预测2.3 前向传播的神经网络-手写数字识别 3. Tensor…

蓝桥杯每日一题2023.12.2

题目描述 蓝桥杯大赛历届真题 - C 语言 B 组 - 蓝桥云课 (lanqiao.cn) 题目分析 答案:3598180 由题目分析可以知道,给小明发的牌一共有13种类型,每种类型的牌一共有四张。对于每种牌,我们都有5种选择,不拿、拿一张、…

文字、图片免费生成视频和专属数字人,你不来试试吗?

查看生成的效果:AI产生的视频(关注公众号,获取精彩内容) 您是否想要制作一些令人惊叹的视频,但又没有视频编辑的技能或经验?您是否想要利用人工智能的力量,让您的图片和声音变成动态的视频&…

Java研学-IO流(三)

六 字节流 – 字节输出流系列 OutPutStream体系 1 OutPutStream系列 – 字节输出流 // 表示字节输出流所有类的超类,输出流接受输出字节并将其发送到某个接收器 public abstract class OutputStreamFileOutputStream/BufferedOutputStream 2 FileOutputStream类设…

操作系统-文件管理

文件的属性 文件名:由创建文件的用户决定文件名,主要说为了方便用户找到文件,同一个目录下不允许有重名文件。 标识符:一个系统内的各文件标识符唯一,对用户来说毫无可读性,因此标识符只是操作系统用于区分…

Linux删除了大文件为什么磁盘空间没有释放?

某天,收到监控系统的告警信息,说磁盘空间占用过高,登上服务器,使用 df -h 一看,发现磁盘占用率已经 96%了: 通过查看 /usr/local/nginx/conf/vhost/xxx.conf 找到 access_log 和 error_log 的路径&#x…

【每日一题】找出叠涂元素

文章目录 Tag题目来源题目解读解题思路方法一:哈希表 写在最后 Tag 【哈希表】【数组】【2023-12-01】 题目来源 2661. 找出叠涂元素 题目解读 从左往右遍历 arr 给矩阵 mat 上色,在上色的过程中矩阵的某一行或者某一列的全部被上色了,返回…

Java中实现HTTPS连接的最佳实践

引言 大家好!我是小黑。今天咱们来聊聊一个既热门又实用的话题:在Java中如何实现HTTPS连接。现在的网络世界,安全性是大家都非常关注的问题,特别是对于咱们这些程序员来说,更是如此。想想看,如果你的网站或…

AI创作ChatGPT源码+AI绘画(Midjourney绘画)+DALL-E3文生图+思维导图生成

一、AI创作系统 SparkAi创作系统是基于ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统,支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美,可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如何搭建部署AI…

Java实战案例————ATM

需求分析 首先ATM银行系统包括两个基础大功能:开户和登陆账户(当然在系统中没有一个账户时不能登录,需要先开户)。 一名用户有6项基本信息描述:姓名、性别、银行卡号、银行卡密码、账户余额、取款限额。 在登录账户…

独家揭秘:卢松松拍摄视频背后的创作过程

我是卢松松,点点上面的头像,欢迎关注我哦! 一条视频刚刚发几分钟,有个粉丝就过来评论说: 抛开广告性,越来越有感觉了。 于是今天的这篇文章就来了,也顺便给大家分享下近期我拍视频、编辑视频的…

css实现最简单的3d透视效果,通过旋转可以直观感受到

css的3d效果还是非常复杂的,我今天简单学习了一下入门,实现了一个超级简单的效果,帮助我自己理解这个3d的过程,实现的效果动画如下:可以通过调整父元素旋转的角度,更加直观的感受这个3d效果: 实…

解决Wireshark分析RTMP抓包时Unknown问题

使用Wireshark抓包时,经常出现很多Unknown包,但实际上的字节流实际是正常的。 其实,RTMPT设置里有一个最大包大小的设置,默认是32768,而且默认RTMPT协议配置了从多个TCP流中重组RTMPT的功能(应当是考虑基于HTTP的传输…

基于java+swing+mysql五子棋小游戏(含实训报告)

基于javaswingmysql五子棋小游戏(含实训报告) 一、系统介绍二、功能展示四、其它1.其他系统实现五.获取源码 一、系统介绍 一、实验目的 1、熟练掌握基本网络编程技术。 2、掌握Swing图形用户界面编程。 3、掌握多线程编程的基本原理,能使用…

【并发编程】什么是死锁?死锁如何解决?线上发生死锁应该怎么办?

📫作者简介:小明Java问道之路,2022年度博客之星全国TOP3,专注于后端、中间件、计算机底层、架构设计演进与稳定性建设优化,文章内容兼具广度、深度、大厂技术方案,对待技术喜欢推理加验证,就职于…

Simple_SSTI_1-WEB-bugku-解题步骤

——CTF解题专栏—— 声明:文章由作者weoptions学习或练习过程中的步骤及思路,非正式答案,仅供学习和参考。 题目信息: 题目:Simple_SSTI_1 作者:valecalida 提示:无 场景: 解题…