日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Python Unittest原理及基本使用方法

瀏覽:18日期:2022-07-06 10:28:18

基本使用步驟:

1、import unittest

2、新建一個Class繼承unittest.TestCase

3、定義一個以test開頭的函數作為測試用例【必須以test開頭】

4、執行測試用例前都會先調用Setup函數【每個測試用例調用一次】或者setupClass函數【所有測試用例僅調用一次】

5、執行完測試用例后都會調用tearDown函數【多次】和tearDownClass函數【僅一次】

PS:

1、不能重寫init()

2、函數必須以test開頭才能作為測試用例

3、setupClass()和tearDownClass()必須用@classmethod修飾

# -*- encoding=utf-8 -*-import unittestclass Demo1(unittest.TestCase): def setUp(self): print ’調用 setup 函數’ @classmethod def setUpClass(cls): print ’調用 setupClass 函數’ def tearDown(self): print ’調用 tearDown 函數’ @classmethod def tearDownClass(cls): print ’調用 tearDownClass 函數’ @staticmethod def test_add(): print ’3 + 5 = {}’.format(3 + 5) @staticmethod def test_sub(): print ’3 - 5 = {}’.format(3 - 5)if __name__ == ’__main__’: unittest.main()

運行結果

調用 setupClass 函數

調用 setup 函數

3 + 5 = 8

調用 tearDown 函數

調用 setup 函數

3 - 5 = -2

調用 tearDown 函數

調用 tearDownClass 函數

Ran 2 tests in 0.012s

OK

TestSuite【測試組】添加測試用例進行測試

# -*- encoding=utf-8 -*-class Class1(object): def __init__(self): print ’調用 Class1 初始化函數’ self.name = ’未定義姓名’ self.age = ’未定義年齡’ def set_name(self, name): self.name = name def set_age(self, age): self.age = age def print_name(self): print ’Class1 的姓名是:{}’.format(self.name) def print_age(self): print ’Class1 的年齡是:{}’.format(self.age)if __name__ == ’__main__’: pass # -*- encoding=utf-8 -*-import unittestfrom Class1 import Class1class CallClass1(unittest.TestCase): def setUp(self): self.class1 = Class1() pass def tearDown(self): self.class1 = None pass def test_set_name(self): self.class1.set_name(’設置了名字’) self.class1.print_name() def test_print_name(self): self.class1.print_name()if __name__ == ’__main__’: unittest.main() # -*- encoding=utf-8 -*-import unittestfrom Test_Demo2 import CallClass1if __name__ == ’__main__’: testSuite = unittest.TestSuite() testSuite.addTest(CallClass1(’test_set_name’)) testSuite.addTests( [CallClass1(’test_set_name’), CallClass1(’test_print_name’)]) textTestRunner = unittest.TextTestRunner() textTestRunner.run(testSuite)

運行結果

調用 Class1 初始化函數

Class1 的姓名是:設置了名字

調用 Class1 初始化函數

Class1 的姓名是:設置了名字

調用 Class1 初始化函數

Class1 的姓名是:未定義姓名

...

----------------------------------------------------------------------

Ran 3 tests in 0.000s

OK

Process finished with exit code 0

記錄測試報告到txt文件

# -*- encoding=utf-8 -*-import unittestfrom Test_Demo2 import CallClass1if __name__ == ’__main__’: testSuite = unittest.TestSuite() testSuite.addTest(CallClass1(’test_set_name’)) testSuite.addTests( [CallClass1(’test_set_name’), CallClass1(’test_print_name’)]) # textTestRunner = unittest.TextTestRunner() # textTestRunner.run(testSuite) # 將測試結果輸出到測試報告中 with open(’UnittestTextReport.txt’, ’w’) as f: runner = unittest.TextTestRunner(stream=f, verbosity=2) runner.run(testSuite)

記錄測試報告到html文件

# 將測試結果輸出到測試報告html中with open(’HTMLReport.html’, ’w’) as f: runner = HTMLTestRunner(stream=f, title=’MathFunc Test Report’, description=’generated by HTMLTestRunner.’, verbosity=2 ) runner.run(suite)

斷言

當斷言為真時,會執行斷言之后的代碼如(在斷言之后打印成功提示信息)

若斷言為假,則之后的代碼不會被執行,打應錯誤信息,之后提示信息不會被執行;unittest中提示F,失敗,若捕獲到異常,則為E,代表錯誤;

補充:若斷言為假,則當前函數def,停止運行,但會運行之后的def函數

重點:try語句塊中不要使用assert一起使用,assert斷言為假時,會拋出異常,測試用例為失敗,如果放到try中,則會捕獲到異常,測試用例永遠標記為通過

斷言結果:

. 表示通過 或者 pass

F False, 表示斷言沒有通過

E Error, 表示程序內部發生了錯誤。

查找當前目錄下所有的測試用例【默認以test開頭的py文件,可以自己配置】

# -*- encoding=utf-8 -*-import unittestimport osif __name__ == ’__main__’: loader = unittest.defaultTestLoader.discover(os.getcwd()) # tests = unittest.defaultTestLoader.discover( # start_dir=’.’, # => 指定查找的目錄 # pattern=’test*.py’ # => 指定查找規則 # ) runner = unittest.TextTestRunner() runner.run(loader)

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Python 編程
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
日本久久综合| 亚洲专区一区| 日韩中文字幕一区二区高清99| 在线精品小视频| 日韩国产激情| 成人羞羞视频播放网站| 日韩伦理福利| 91精品国产乱码久久久久久久| 日韩毛片视频| 欧美一区二区三区高清视频| 欧美va亚洲va日韩∨a综合色| 91超碰国产精品| 老牛影视一区二区三区| 亚洲精品人人| 国产亚洲高清一区| 国产精品多人| 日韩在线高清| 午夜久久福利| 免费日韩av片| 午夜亚洲福利| 国产精品大片免费观看| 精品国产a一区二区三区v免费| 岛国av免费在线观看| 欧美99久久| 四虎成人精品一区二区免费网站| 久久不见久久见国语| 欧美精品日日操| 丝袜a∨在线一区二区三区不卡| 无码日韩精品一区二区免费| 欧美精品aa| 91亚洲成人| 99热免费精品| 日本不卡一区二区| 国产精品手机在线播放| 福利欧美精品在线| 国产综合婷婷| 日本三级亚洲精品| 亚洲天堂资源| 人人精品人人爱| 国产精品一区二区精品| 日韩成人三级| 中文字幕一区二区精品区| 国产精品任我爽爆在线播放| 超碰超碰人人人人精品| 首页国产欧美久久| 久久伊人久久| 一区视频在线| 久久久久伊人| 国产亚洲永久域名| 欧美日韩中出| 久久一级电影| 欧美日韩中文| japanese国产精品| 国产精品久一| 在线视频日韩| 四季av一区二区凹凸精品| 日韩视频一区二区三区在线播放免费观看| 国产乱码精品一区二区三区四区| 国内激情久久| 久久精品免费看| 在线观看视频免费一区二区三区| 四虎8848精品成人免费网站| 亚洲精品乱码| 99免费精品| 国产探花在线精品一区二区| 亚洲网站视频| 韩日一区二区| 日本成人手机在线| 性欧美69xoxoxoxo| 国产一区二区三区成人欧美日韩在线观看| 日韩视频在线一区二区三区| 精品一区二区三区中文字幕 | 六月天综合网| 国产精品成久久久久| 亚洲免费在线| 欧美成人基地 | 国模 一区 二区 三区| 国产精品4hu.www| 亚洲欧美网站| 日韩一区二区三区免费| 国产亚洲字幕| 免费不卡在线视频| 免费观看亚洲| 麻豆一区二区在线| 亚洲2区在线| 伊人久久亚洲热| 精精国产xxxx视频在线播放| 免费日韩成人| 91亚洲精品视频在线观看| 亚洲综合日本| 亚洲精品一区二区妖精| 国产精品国产一区| 国产精品mm| 欧美三区不卡| 日本精品久久| 亚洲专区视频| 午夜日韩av| 欧美一级鲁丝片| 精品国产乱码久久久| 国产美女视频一区二区| 伊人精品久久| 国产亚洲福利| 在线国产一区| 午夜国产一区二区| 亚洲91久久| 国产精品久久久久av电视剧| 国语对白精品一区二区| 精品资源在线| 精品72久久久久中文字幕| 久久精品国产免费| 国产精品久久乐| 国产亚洲精品精品国产亚洲综合| 中文视频一区| 免费人成在线不卡| 久久国产精品毛片| 中文字幕日韩欧美精品高清在线| 亚洲一区二区av| 亚洲精品无吗| 色综合视频一区二区三区日韩 | 在线午夜精品| 夜夜嗨网站十八久久| 夜夜嗨网站十八久久| 亚洲综合国产| 蜜臀精品久久久久久蜜臀| 蜜臀av一区二区三区| 免费视频一区二区| 爽好多水快深点欧美视频| 视频一区欧美精品| 日韩中出av| 国产精品99久久久久久董美香| 麻豆国产精品| 天堂中文在线播放| 婷婷亚洲五月| 一区二区国产在线| 欧美一级一区| 久久午夜影院| 亚洲精品在线影院| 午夜久久福利| 综合在线一区| 久久国产精品免费精品3p| 麻豆精品一区二区综合av| 欧美一区精品| 精品国产亚洲日本| 精精国产xxxx视频在线播放| 欧美日韩激情| 日欧美一区二区| 国产精品白丝久久av网站| 国产乱码午夜在线视频| 91精品成人| 日韩国产精品久久久久久亚洲| 美女毛片一区二区三区四区最新中文字幕亚洲 | 伊人久久一区| 国产精品一区二区三区av| 高清在线一区| 91精品综合| 久久成人亚洲| 欧美日韩一区二区高清| 国产成人免费| 99视频+国产日韩欧美| 91久久精品无嫩草影院| 福利欧美精品在线| 91久久视频| 国产欧美丝祙| 日韩精品看片| 婷婷亚洲成人| 日韩国产专区| 亚洲精品激情| 最近高清中文在线字幕在线观看1| 亚洲美洲欧洲综合国产一区| 色综合视频一区二区三区日韩 | 综合激情五月婷婷| 久久久久观看| 精品在线99| 伊人精品久久| 国产一区二区亚洲| 亚洲免费影视| 国产suv精品一区二区四区视频| 亚洲精品一二三区区别| 国产欧美日本| 亚洲欧美日韩高清在线| 国产精东传媒成人av电影| 激情婷婷欧美| 国产精品第十页| 夜夜嗨av一区二区三区网站四季av| 国产精品久久久久9999高清| 亚洲美洲欧洲综合国产一区 | 欧美激情一区| 亚洲免费精品| 久久久91麻豆精品国产一区| 亚洲欧洲一区| 成人三级高清视频在线看| 亚洲69av| 91精品一区国产高清在线gif| 欧美日本精品| 亚洲深夜福利| 高清久久一区| 国产美女亚洲精品7777| 免费看的黄色欧美网站| 日韩大片在线播放| 国产精品久久久久毛片大屁完整版|