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>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")

查看执行结果

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

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

相关推荐

  1. unittest框架管理测试

    2023-12-07 19:14:04       57 阅读
  2. 【Python】单元测试unittest框架

    2023-12-07 19:14:04       62 阅读
  3. 单元测试框架unittest D15

    2023-12-07 19:14:04       39 阅读
  4. 单元测试框架unittest D16

    2023-12-07 19:14:04       40 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-07 19:14:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-07 19:14:04       100 阅读
  3. 在Django里面运行非项目文件

    2023-12-07 19:14:04       82 阅读
  4. Python语言-面向对象

    2023-12-07 19:14:04       91 阅读

热门阅读

  1. flex布局中的flex:1相关知识

    2023-12-07 19:14:04       57 阅读
  2. 【运维面试100问】(七)ceph基础题面试

    2023-12-07 19:14:04       55 阅读
  3. Js文件下载的两种方式【超简单】

    2023-12-07 19:14:04       58 阅读
  4. Ubuntu 18.04 ARM离线安装cifs-utils

    2023-12-07 19:14:04       50 阅读
  5. Oracle转MySQL该如何改变逻辑

    2023-12-07 19:14:04       56 阅读
  6. 【数据结构和算法】确定两个字符串是否接近

    2023-12-07 19:14:04       58 阅读
  7. 前端设计模式概论

    2023-12-07 19:14:04       53 阅读
  8. 【前端设计模式】之工厂模式

    2023-12-07 19:14:04       62 阅读
  9. JVM中 Minor GC 和 Full GC 的区别

    2023-12-07 19:14:04       55 阅读