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

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

Python Unittest原理及基本使用方法

瀏覽:15日期: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精品综合| 久久福利影视| 日韩av字幕| 亚洲一区欧美| 日韩超碰人人爽人人做人人添| 欧美一区自拍| 久久一区亚洲| 亚洲黄色网址| 久久亚洲专区| 欧美专区一区二区三区| 日韩精品视频网| 欧美国产日韩电影| a国产在线视频| 欧美日韩国产综合网| 亚洲美女91| 国产精品蜜月aⅴ在线| 精品精品国产三级a∨在线| 日韩亚洲一区在线| 99久久精品网| 综合国产精品| 国产精品一区二区av交换 | 精品一区二区三区亚洲| 日韩欧美一区二区三区免费看| 免费毛片在线不卡| 日韩精品视频中文字幕| 丁香婷婷久久| 国产午夜久久| 久久国产麻豆精品| 日本精品在线中文字幕| 羞羞答答国产精品www一本| 日韩激情精品| 91欧美日韩| 综合国产精品| av最新在线| 麻豆成人在线| 精品五月天堂| 亚洲欧美日本日韩| 国产精品magnet| 欧美日韩在线观看视频小说| 一区二区三区午夜视频| 美女视频网站久久| 国产韩日影视精品| 国产日韩欧美一区二区三区 | 91亚洲人成网污www| 一本一道久久a久久精品蜜桃| 91福利精品在线观看| 亚洲成人va| 91欧美日韩在线| 日韩精品电影| 日韩av一区二区在线影视| 88xx成人免费观看视频库| 日韩专区视频网站| 久久久影院免费| 国产福利亚洲| 日韩中文欧美在线| 成人精品高清在线视频| 亚洲色诱最新| 精品一区91| 天堂va欧美ⅴa亚洲va一国产| 欧美不卡高清一区二区三区| 日本精品国产| 国产亚洲毛片在线| 成人亚洲欧美| 国产日韩欧美在线播放不卡| 亚洲欧洲另类| 日韩av首页| 久久精品国产一区二区| 亚洲精品国产日韩| 免费av一区| 日本久久精品| 国产精品日韩精品在线播放| 一区二区视频欧美| 精品精品99| 日韩福利视频一区| 视频一区中文字幕| 成人免费网站www网站高清| 国产日韩视频在线| 亚洲精品伦理| 亚洲精品在线观看91| 超碰99在线| 欧美精品91| 日韩激情中文字幕| 蜜桃视频免费观看一区| 欧美日韩一区二区综合| 91青青国产在线观看精品| 7777精品| 爽好久久久欧美精品| 久久精品主播| 黑人精品一区| 久久99国产精品视频| 久久国内精品| 91嫩草精品| 午夜视频一区二区在线观看| 欧美精品一线| 国产精品88久久久久久| 岛国av在线播放| 精品亚洲自拍| 精品视频网站| 国产精品毛片aⅴ一区二区三区| 久久不射网站| 国产精品美女久久久| 日本免费久久| 激情国产在线| 日产精品一区二区| 国产成人精品免费视| 久久久久伊人| 精品一区二区三区中文字幕视频| 91成人在线网站| 日韩高清不卡在线| 日韩超碰人人爽人人做人人添| 婷婷五月色综合香五月| 蜜桃av一区二区在线观看| 午夜宅男久久久| 蜜桃视频在线观看一区二区| 亚洲乱码视频| 亚洲网址在线观看| 中文精品视频| 丝袜诱惑制服诱惑色一区在线观看 | 鲁鲁在线中文| 国产+成+人+亚洲欧洲在线| 久久久91麻豆精品国产一区| 国产精品嫩模av在线| 国产精品s色| 精品免费av| 日韩在线欧美| 日韩大片在线| 一区二区三区四区在线看| 亚洲激情欧美| 天海翼精品一区二区三区| 日韩av一区二区在线影视| 国产精品第一| 在线手机中文字幕| 欧美日韩在线播放视频| 亚洲精品中文字幕乱码| 亚洲我射av| 国产免费久久| 国产成人精品一区二区三区视频| 久久影院午夜精品| 尤物在线精品| 亚洲精品看片| 国产无遮挡裸体免费久久| 麻豆91精品视频| 精品国产第一福利网站| 国产精品97| 午夜久久av| 精品一区二区三区中文字幕视频| 性感美女一区二区在线观看| 中文国产一区| 国产剧情一区二区在线观看| 国产aa精品| 99热精品在线| 日韩黄色免费网站| 久久中文字幕导航| 久久三级视频| 亚洲欧洲日韩| 麻豆精品蜜桃视频网站| 91精品一区国产高清在线gif| 视频一区视频二区在线观看| 久久激五月天综合精品| 日韩深夜视频| 日韩中文字幕区一区有砖一区 | 日本精品另类| 国产精品福利在线观看播放| 夜夜嗨一区二区三区| 91精品美女| 丝袜美腿诱惑一区二区三区| 性欧美69xoxoxoxo| 日本特黄久久久高潮| 色在线中文字幕| 伊人精品久久| 国产精品精品| 日韩一区二区三区精品视频第3页| 精品视频自拍| 99国产精品久久久久久久成人热| 日韩激情视频网站| 国产精品亚洲一区二区三区在线观看| 亚洲一区二区成人| 久久免费影院| 视频在线在亚洲| 97精品国产一区二区三区 | 欧美福利一区| 国产精品伦一区二区| 中文久久精品| 久久影院午夜精品| 88久久精品| 国产精品日韩久久久| 狠狠躁少妇一区二区三区| 日本强好片久久久久久aaa| 欧美日韩国产高清电影| 久久av日韩| 丝袜美腿高跟呻吟高潮一区|