国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python Unittest自動化單元測試框架詳解

2020-01-04 15:32:54
字體:
來源:轉載
供稿:網友

本文實例為大家分享了Python Unittest自動化單元測試框架的具體代碼,供大家參考,具體內容如下

1、python 測試框架(本文只涉及 PyUnit)

參考地址

2、環境準備

首先確定已經安裝有Python,之后通過安裝PyUnit,Python版本比較新的已經集成有PyUnit(PyUnit 提供了一個圖形測試界面UnittestGUI.py)
參考:查看地址

3、代碼實例

使用的IDE為 PyCharm,DEMO結構如圖

python,自動化,單元測試框架,Unittest

1.簡單地一個實例

# Test002_Fail.py# -*- coding:utf-8 -*-import unittestclass Test002_Fail(unittest.TestCase):  #測試用例前執行  def setUp(self):    print 'Case Before'    pass  #測試用例后執行  def tearDown(self):    print 'Case After'    pass  #測試用例1  def test_Case1(self):    a = 3    b = 2    self.assertEqual(a+b,4,'Result Fail')  #測試用例2  def test_Case2(self):    a = 2    b = 3    self.assertEqual(a*b,7,'Result Fail')if __name__ == '__main__':  unittest.main()

2.當case比較多的時候,可以使用Suite來管理多個case,suite 可以看做是一個case 的容器,可以裝很多的case

# SuiteDemo.py# -*- coding:utf-8 -*-#一個類,添加測試集import unittestclass SuiteDemo(unittest.TestCase):  #測試用例前執行  def setUp(self):    print 'Case Before'    pass  #測試用例后執行  def tearDown(self):    print 'Case After'    pass  def test_Case1(self):    a = 3    b = 2    self.assertEqual(a+b,5,'Result Fail')    print 'Case1'  def test_Case2(self):    a = 2    b = 3    self.assertEqual(a*b,6,'Result Fail')    print 'Case2'#定義一個測試集合,方便添加Casedef suite():  suiteTest = unittest.TestSuite()  suiteTest.addTest(SuiteDemo("test_Case1"))  suiteTest.addTest(SuiteDemo("test_Case2"))  return suiteTest#默認運行時通過 Suite 運行if __name__ == '__main__':  unittest.main(defaultTest='suite')

3.Suite 和 Case可以分開寫在不同的Python文件中,這樣方便區分case模塊和Suite管理模塊,在測試測試的時候只需要在case模塊里面添加case,之后添加到Suite模塊即可了

case模塊

 

# TestCaseDemo# -*- coding:utf-8 -*-import unittestclass TestCaseDemo(unittest.TestCase):  def setUp(self):    pass  def tearDown(self):    pass  def test_Case1(self):    print 'test_Case1'  def test_Case2(self):    print 'test_Case2'  def test_Case3(self):    print 'test_Case3'  def test_Case4(self):    print 'test_Case4'

接下來為三個Suite模塊,都是先導入Case模塊,之后添加Suite,再在Suite里面添加Case,最后執行的時候需要使用TestRunner,這個TestRunner 相當于Suite 的執行器

簡單地TestSuite:

# TestCase_Demo1.py# -*- coding:utf-8 -*-#集合寫入一個方法,main調用并啟動import unittestfrom TestCase_Demo import TestCaseDemo#添加一個測試集合,并添加Casedef suite():  suiteTest = unittest.TestSuite()  suiteTest.addTest(TestCaseDemo('test_Case1'))  return suiteTest#指定并啟動測試集合,運行集合方法if __name__ == '__main__':  runner = unittest.TextTestRunner()  runner.run(suite())

也可以不定義Suite方法,直接在main方法中進行Case的添加,之后執行

# TestCase_Demo2.py# -*- coding:utf-8 -*-#集合可以寫在mainimport unittestfrom TestCase_Demo import TestCaseDemo#指定并啟動測試集合if __name__ == '__main__':  #添加測試集合Case,并啟動  suiteTest = unittest.TestSuite()  suiteTest.addTest(TestCaseDemo('test_Case1'))  suiteTest.addTest(TestCaseDemo('test_Case2'))  #直接啟動集合  runner = unittest.TextTestRunner()  runner.run(suiteTest)

可以把不同的Case 添加道不同的Suite里面,同樣,可以給Suite分組,用于區分不同的Case,并且,Suite 之間還可以包含

 

# TestCase_Demo3.py# -*- coding:utf-8 -*-#包含集合,多集合import unittestfrom TestCase_Demo import TestCaseDemo#添加不同的合集def Suite1():  suiteTest = unittest.TestSuite()  suiteTest.addTest(TestCaseDemo("test_Case1"))  suiteTest.addTest(TestCaseDemo("test_Case2"))  print 'Suite1 運行'  return suiteTestdef Suite2():  suiteTest = unittest.TestSuite()  suiteTest.addTest(TestCaseDemo("test_Case3"))  suiteTest.addTest(TestCaseDemo("test_Case4"))  print 'Suite2 運行'  return suiteTest#包含所有的Suitedef AllSuite():  allTest = unittest.TestSuite((Suite1(),Suite2()))  return allTest#運行的時候,可以根據不同的要求,運行不同的Suite,或者全部運行,這樣就方便管理每次運行的caseif __name__ == '__main__':  runner = unittest.TextTestRunner()  runner.run(AllSuite())

4.小結

PyUnit 是Python的一個單元測試框架,使用它可以方便的管理自動化運行的case.
在Python 中,每一個方法 只要方法名使用test_ 開頭的都被作為是一個用例,都可以看做成一個case,這里介紹了使用Suite管理Case,并且分組運行Case,還有其他很多的功能,請參考: unittest — Unit testing framework

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


注:相關教程知識閱讀請移步到python教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 灵山县| 古交市| 宣恩县| 辛集市| 西丰县| 云阳县| 横山县| 清水县| 门源| 塘沽区| 皮山县| 江门市| 民县| 璧山县| 大名县| 中方县| 叶城县| 大悟县| 林周县| 海盐县| 雷波县| 剑川县| 兴化市| 沙坪坝区| 高陵县| 青龙| 涪陵区| 钟山县| 浪卡子县| 桃园市| 保亭| 襄樊市| 牡丹江市| 伊春市| 海伦市| 中卫市| 呼和浩特市| 葵青区| 乡宁县| 天峻县| 定州市|