unittest框架

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保持一致

 

上一篇:信息安全之私密文件隐藏


下一篇:学习笔记(01):理解JavaScript中的闭包-什么是闭包