python unittest库的入门学习
unittest的基本概念
一、基本概念
Testcase是所有測試用例的基類
TestSuite是創建一個測試“容器”,可以往里面加case
TextTestRunner是運行測試用例
二、如何創建測試用例類
所有的用例類都需要繼承TestCase
測試用例中setUp和tearDown是每一個case開始和結束的時候都回執行的
測試用例必須以test開頭
還可以在用例類中定義類方法,setUpClass和tearDownClass,在每一個用例類的開始和結尾處都執行一遍。
import unittest #測試類必須要繼承unittest.TestCase class TestMethod(unittest.TestCase):@classmethoddef setUpClass(cls):print('類執行之前')@classmethoddef tearDownClass(cls):print('類結束之后')#每一個測試方法開始要執行的方法def setUp(self):print("測試方法開始啦")#每一個測試方法結束后執行的方法def tearDown(self):print("測試方法結束啦")#測試方法必須要以test開頭!!!def test01(self):print("這個是測試方法01")def test02(self):print("這個是測試方法02") if __name__=="__main__":?
三、使用示例:
import unittest import json from demo import RunMainclass TestMethod(unittest.TestCase):def setUp(self):self.run = RunMain()def test_01(self):data = {'username':'nick','password':'123','errorCode':'1000'}url = "http://localhost:8000/login/"res = self.run.run_main(url, 'POST', data)#self.assertEqual(res['errorCode'],'1000',"測試成功")print(res)# 打印全局變量#print(userid)#@unittest.skip('test_02')def test_02(self):# 全局變量#globlas()['userid'] = '10000'data = {'username':'nick','password':'123','errorCode':1001}url = "http://localhost:8000/login/"res = self.run.run_main(url, 'POST', data)#self.assertEqual(res['errorCode'],'1001',"測試失敗")print(res)if __name__ == '__main__':#unittest.main()suite = unittest.TestSuite()suite.addTest(TestMethod('test_02'))suite.addTest(TestMethod('test_01'))unittest.TextTestRunner().run(suite)? ?globlas()['userid'] = '10000'是全局變量。比如第一個test的執行需要依賴第二個test,這時候就需要一個global,讓第二個test也可以訪問第一個test方法中的變量或者返回值
? ? ? ?assertEqual是斷言
? ? ? @unittest.skip這個裝飾器是用于過濾不需要執行的test
? ? ? main方法中的unittest.main()是執行這個類中的所有代碼,如果只想只想部分test,可以先創建一個“容器”suite,再往里面addtest,最后執行容器
unittest.TextTestRunner().run(suite)示例三: import HTMLTestRunner import unittestclass MyTest(unittest.TestCase):#繼承unittest.TestCasedef tearDown(self):#每個測試用例執行之后做操作print('111')def setUp(self):#每個測試用例執行之前做操作print(22222)def test_run(self):# self.assertEqual(1,1)self.assertIs(1,1)#測試用例def test_run2(self):# self.assertEqual(1,1)self.assertIs(1,1)#測試用例def test_run3(self):# self.assertEqual(1,1)self.assertIs(1,1)#測試用例def test_run1(self):# self.assertEqual(1,1)self.assertIs(1,1)#測試用例if __name__ == '__main__':test_suite = unittest.TestSuite()#創建一個測試集合test_suite.addTest(MyTest('test_run1'))#測試套件中添加測試用例#test_suite.addTest(unittest.makeSuite(MyTest))#使用makeSuite方法添加所有的測試方法fp = open('res.html','wb')#打開一個保存結果的html文件runner = HTMLTestRunner.HTMLTestRunner(stream=fp,title='api測試報告',description='測試情況')#生成執行用例的對象runner.run(test_suite)#執行測試套件
如果執行了之后無法生成測試報告,那就直接在命令行中執行這個py文件就行了,這個是pycharm的毛病。。。
可以參考:https://blog.csdn.net/xie_0723/article/details/50825310
更多uinttest的資料https://www.cnblogs.com/feng0815/p/8045850.html
轉載于:https://www.cnblogs.com/mesunyueru/p/9164406.html
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的python unittest库的入门学习的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ASP.NET MVC学习:MVC 特性
- 下一篇: C#基础_值类型引用类型(十一)