首页 > 其他 > 详细

unittest框架

时间:2020-02-19 15:13:56      阅读:55      评论:0      收藏:0      [点我收藏+]

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

(1)对于类来说,class TestAxx 会优先于class TestBxx被执行

(2)对于方法来说,test_aaa()方法会有优先于test_bbb()被执行,例如按照test0,test1,test10,test11....test20,test21执行

import unittest 

class TestBdd(unittest.TestCase):
    def setup(self):
        print("test TestBdd :")

    def test_ccc(self):
        print("test ccc")

    def test_aaa(self):
        print("test aaa")

    def tearDown(self):
        pass

class TestAdd(unittest.TestCase):
    
    def setup(self):
        print("test TestAdd :")

    def test_bbb(self):
        print("test bbb") 
   
    def tearDown(self):
        pass

if __name__ == ‘__main__‘:
    unittest.main()


执行结果

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

  

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

run.py

....

if __name__ == ‘__main__‘:
    #构造测试集
    suite = unittest.TestSuite()
    suite.addTest(TestBdd("test_ccc"))
    suite.addTest(TestAdd("test_bbb"))
    suite.addTest(TestBdd("test_aaa"))
    #执行测试
    runner = unittest.TextTestRunner()
    runner.run(suite)


执行顺序:
===============
test TestBdd:
test ccc
.test TestAdd:
test bbb
.test TestBdd:
test aaa
.
--------------------

  

2、@paramunittest框架接受参数时需使用setParameters方法,而且只能这样命名,括号后面的参数分别接受传入的参数名称。前面定义的是字典,那参数就跟前面字典的key保持一致

 

unittest框架

原文:https://www.cnblogs.com/CXMS/p/12331282.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!