亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

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

Python Unittest原理及基本使用方法

瀏覽:5日期: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 編程
相關文章:
主站蜘蛛池模板: 亚洲一区色| 久久99亚洲综合精品首页 | 免费播放观看视频大片 | 久久综合九色综合亚洲小说 | 亚洲精品综合一区在线 | 综合天天| 免费看大黄高清网站视频在线 | 国产在线视频专区 | sese久久| 911亚洲精品| 岛国大片在线观看免费版 | 高清精品一区二区三区一区 | 亚洲国产成人精品女人久久久 | 91在线免费视频 | 国产在线观看第一页 | 91麻豆麻豆 | 91亚洲精品视频 | 色网站网址 | 狠狠色丁香久久婷婷综合_中 | 国产欧美日韩综合精品一区二区 | 免费看影片的网站入口 | 精品国产日韩亚洲一区在线 | 日本免费的一级绿象 | xxxxxhd69日本护士 | 欧美日韩国产高清一区二区三区 | 国产精品亚洲一区二区三区正片 | 91麻豆国产极品在线观看洋子 | 亚洲色图清纯唯美 | 国产日韩欧美中文字幕 | 国产4p露脸在线观看 | 在线精品视频成人网 | 插插宗合网 | 91精品欧美一区二区综合在线 | 鲁久久| 日本久久黄色 | 深夜爽爽福利gif在线观看 | 色播影院性播12306影视 | 国内精品91 | 免费羞羞视频网站 | 五月亭亭六月丁香 | 毛片aa|