• unittest用例执行的顺序


    unittest在执行用例(test_xxx)时,并不是按从上到下的顺序执行,有特定的顺序。

    示例:

     1 import unittest 
     2 
     3 class TestBdd(unittest.TestCase):
     4     def setup(self):
     5         print("test TestBdd :")
     6 
     7     def test_ccc(self):
     8         print("test ccc")
     9 
    10     def test_aaa(self):
    11         print("test aaa")
    12 
    13     def tearDown(self):
    14         pass
    15 
    16 class TestAdd(unittest.TestCase):
    17     
    18     def setup(self):
    19         print("test TestAdd :")
    20 
    21     def test_bbb(self):
    22         print("test bbb") 
    23    
    24     def tearDown(self):
    25         pass
    26 
    27 if __name__ == '__main__':
    28     unittest.main()

    执行结果:

    ==============
    test TestAdd:
    test bbb
    .test TestBdd:
    test aaa
    .test TestBdd:
    test ccc
    . 
    -------------------------

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

    • 对于类来说,class TestAxx 会优先于class TestBxx被执行。
    • 对于方法来说,test_aaa()方法会有优先于test_bbb()被执行。

    对于测试目录与测试文件来说,unittest同样是按照这个规则来加载测试用例的。

    如果不想让test—bbb()先执行,需要通过TestSuite类的addTest()方法按照一定的顺序来加载

     1 run.py
     2 
     3 ....
     4 
     5 if __name__ == '__main__':
     6     #构造测试集
     7     suite = unittest.TestSuite()
     8     suite.addTest(TestBdd("test_ccc"))
     9     suite.addTest(TestAdd("test_bbb"))
    10     suite.addTest(TestBdd("test_aaa"))
    11     #执行测试
    12     runner = unittest.TextTestRunner()
    13     runner.run(suite)

    执行结果如下:

    ===============
    test TestBdd:
    test ccc
    .test TestAdd:
    test bbb
    .test TestBdd:
    test aaa
    .
    --------------------
  • 相关阅读:
    VWG中设置URL编码的方法
    wordwrap breakword
    iis6下配置支持.net4.0&发布网站[转]
    MySQL修复打不开的视图定义
    DHTML CSS+JavaScript设计网页链接提示ToolTips
    C# 计算文件的MD5值
    .Net+IIS环境经常出现的问题及排障[转]
    我的WCF之旅(1):创建一个简单的WCF程序[转]
    C#嵌套类的使用方法及特性[转]
    设置<table>的固定长度
  • 原文地址:https://www.cnblogs.com/Mollylin/p/10347962.html
Copyright © 2020-2023  润新知