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

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

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>2self.assertGreater(4,2)print("测试test_ccc执行结束")def test_aaa(self):a = Trueself.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>2self.assertGreater(4,2)print("测试test_ccc执行结束")def test_aaa(self):a=Trueself.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.lryc.cn/news/250377.html

相关文章:

  • 海云安谢朝海:开发安全领域大模型新实践 人工智能助力高效安全左移
  • Postman接口测试工具完整教程
  • Android 滑动按钮(开关) SwitchCompat 自定义风格
  • 前端面试灵魂提问-计网(2)
  • Git修改远程仓库名称
  • kafka 集群 ZooKeeper 模式搭建
  • 【LeetCode】 160. 相交链表
  • TZOJ 1429 小明A+B
  • 制作openeuler的livecd
  • B.牛牛排队伍——模拟双链表
  • 【PyTorch】(四)损失函数与优化器
  • 【Python】使用execute(sql)执行insert之后没有插入数据
  • 虚拟机备份数据自动化验证原理
  • 前端入门(五)Vue3组合式API特性
  • Doris 数据导入二:Stream Load 方式
  • 【算法刷题】Day10
  • SAP 如何检查已安装的SAP UI5 版本
  • 15、 深度学习之正向传播和反向传播
  • 微信小程序中复制文本
  • vue3学习--初始
  • cmake和vscode 下的cmake的使用详解(二)
  • 集成开发环境 PyCharm 的安装【侯小啾python领航班系列(二)】
  • mysql从库设置为只读
  • .NET6实现破解Modbus poll点表配置文件
  • 【零基础入门Docker】Dockerfile中的USER指令以及dockerfile命令详解
  • R语言期末考试复习二
  • golang Pool实战与底层实现
  • WPF使用Prism框架批量注册Page,Window,UserControl等视图组件
  • 网络安全应急响应-Server2228(环境+解析)
  • [WP] ISCTF2023 Web 部分题解