一、1.unnitest概念:當有很多測試案例的時候,需要集中測試,可以設計一個unnitest單元測試框架集中測試,每個案例就是一個模塊;可以生成各種形式測試日志(HTML、TXT)
2.完成功能:本程序分兩個模塊,test_4.py完成芯片的初始化;test_fasttest.py完成芯片的算法測試(AES、DES、RSA、MD5、CRC、SHA)。最后所有模塊在all_test.py里運行。
3.本程序文件框架:
|-test_case/
|-test_4.py #模塊1
|-test_fasttest.py #模塊2
|-all_test.py #在這里添加運行
|-result.html #生成的log,html形式
|-log.txt #生成的log,txt形式
4.效果
二、代碼
由於代碼太多。。。只顯示關鍵部分
test_4.py
1 import unittest, time, re 2 import HTMLTestRunner 3 #...more imoprt 4 #...send等接口的封裝 5 6 7 class Test4(unittest.TestCase): 8 def test_4(self): 9 u"""初始化""" 10 send(apduchange('F0100000100123456789abcdeffedcba9876543210')) 11 send(apduchange('F014000000')) 12 send(apduchange('F011000000')) 13 send(apduchange('F01302c80908A000000151000000')) 14 send(apduchange('F01302c2024428')) 15 send(apduchange('F013028601C9')) 16 send(apduchange('F015000000')) 17 send(apduchange('00A4040000')) 18 send(apduchange('00A4040012')) 19 20 pass 21 22 if __name__ == "__main__": 23 testunit = unittest.TestSuite() 24 testunit.addTest(Test4('test_4')) 25 runner = unittest.TextTestRunner() 26 #filename = 'C:\\result.html' 27 #fp = file(filename,'wb') 28 #runner = HTMLTestRunner.HTMLTestRunner(stream = fp, title = 'Report_title',description = 'Report_decription') 29 runner.run(testunit) 30 print 'finish test_4(initialization)'
test_fasttest.py:
1 #..實現接口 2 class Testfasttest(unittest.TestCase): 3 def test_fasttest(self): 4 #...測試案例(各種算法) 5 if __name__ == "__main__": 6 testunit = unittest.TestSuite() 7 testunit.addTest(Testfasttest('test_fasttest')) 8 runner = unittest.TextTestRunner() 9 #filename = 'C:\\result.html' 10 #fp = file(filename,'wb') 11 #runner = HTMLTestRunner.HTMLTestRunner(stream = fp, title = 'Report_title',description = 'Report_decription') 12 runner.run(testunit) 13 print'finish test_fasttest'
all_test.py
#coding=utf-8 "Combine tests for gnosis.xml.objectify package (req 2.3+)" import unittest, doctest #import test_2, test_3,test_4 #這里需要導入測試文件 import test_4,test_fasttest import HTMLTestRunner suit = doctest.DocTestSuite() suit.addTest(unittest.makeSuite(test_4.Test4)) suit.addTest(unittest.makeSuite(test_fasttest.Testfasttest)) filename = 'C:\\result.html' fp = file(filename, 'wb') runner = HTMLTestRunner.HTMLTestRunner(stream=fp,title=u'測試部_XXX',description='Rongcard_Test') runner.run(suit)