av激情亚洲男人的天堂国语,日韩欧美精品一中文字幕,无码av一区二区三区无码,国产又色又爽又刺激的a片,国产又色又爽又刺激的a片

深度剖析Python測試框架內(nèi)容

下面進行有效的說明一下Python測試框架,Python是一種解釋性的語言,但是這種說法是不正確的,其實他是一種可以讓沒有學習過編程或者并非計算機專業(yè)的編程學習的人,易于接受的語言。

Python測試框架中具有標準的單元測試框架(從 Python 2.3 開始。在 Python 2.2 中這只是可選模塊),與 Java jUnit 框架十分類似。測試用例的結(jié)構(gòu)與 jUnit 采用相同的方式。每一個待測試的類和模塊通常都具有自己的測試類。測試類中包含測試裝置(fixture)。

 
 
 
  1. import unittest
  2. from pprint import pprint
  3. import feedparser
  4. class FeedparserTest(unittest.TestCase):
  5.     """
  6.     A test class for the feedparser module.
  7.     """
  8.     
  9.     def setUp(self):
  10.         """
  11.         set up data used in the tests.
  12.         setUp is called before each test function execution.
  13.         """
  14.         self.developerWorksUrl = "testData/developerworks.rss"       
  15.     def testParse09Rss(self):
  16.         """
  17.         Test a successful run of the parse function for a
  18.         0.91 RSS feed.
  19.         """
  20.         print "FeedparserTest.testParse09RSS()"
  21.         
  22.         result = feedparser.parse(self.developerWorksUrl)
  23.         pprint(result)
  24.         self.assertEqual(0, result['bozo'])
  25.         
  26.         self.assert_(result is not None)
  27.         channel = result['channel']
  28.         self.assert_(channel is not None)
  29.         chanDesc = channel['description']
  30.         self.assertEqual(u'The latest content from IBM developerWorks',
  31.             chanDesc)
  32.         
  33.         items = result['items']
  34.         self.assert_(items is not None)
  35.         self.assert_(len(items)> 3)
  36.         firstItem = items[0]
  37.         title = firstItem['title']
  38.         self.assertEqual(u'Build installation packages with 
  39.             solution installation and deployment technologies',
  40.             title)
  41.   
  42.     def tearDown(self):
  43.         """
  44.         tear down any data used in tests
  45.         tearDown is called after each test function execution.
  46.         """
  47.         pass
  48.                 
  49. if __name__ == '__main__':
  50.     unittest.main()

它們在 setUp 函數(shù)中初始化。每一個測試都編寫為測試類中的一個獨立的測試函數(shù)。unittest 框架會在測試函數(shù)之間循環(huán)往復,先調(diào)用 setUp 、再測試函數(shù)、然后清除( tearDown )測試函數(shù)。上述清單是實現(xiàn) feedparser 模塊基本測試功能的測試類。完整的測試類見 feedParserTest 項目下的 src/feedparserTest/FeedparserTest.py。

setUp 函數(shù)負責準備整個測試過程中需要使用的測試裝置,在本例中只有測試用的 RSS 文件的目錄,測試函數(shù)將對其進行解析。 testParse09Rss 是真正的測試函數(shù)。這個函數(shù)調(diào)用 feedparser.parse 函數(shù),傳遞測試用的 RSS 文件,輸出解析結(jié)果。

并通過 TestCase 類的 assert 函數(shù)執(zhí)行基本的檢查統(tǒng)作。如果任何 assert 的求值結(jié)果不是真,或是在執(zhí)行過程中拋出任何異常。unittest 就會報告一次測試失敗或錯誤。***的兩行負責在這個測試類內(nèi)部運行測試,方法是直接運行該模塊即可。

要獨立運行該測試類,可以按前面所說的相同方式運行 FeedparserTest.py 模塊。在 Eclipse Navigator 視圖中選擇 FeedparserTest.py。然后通過 Python測試框架> Run 運行。此時顯示啟動配置窗口。除 Base 目錄之外,其他都保持缺省值即可。Base 目錄必須是 feedParserTest 項目的目錄。

這樣才能在當前目錄下找到 RSS 文件(testData/developerworks.rss)。修改 base 目錄的設置,然后點擊“Run”。輸出信息顯示在 Console 上。 您也許希望我們編寫的所有單元測試都能夠作為構(gòu)建的一部分自動執(zhí)行。將下面清單 5 所示的構(gòu)建片斷加入構(gòu)建腳本便可實現(xiàn)。

***行是目標聲明,這與其他的腳本相同。第 2 至第 6 行調(diào)用 py-test 任務。這部分代碼將在“src”目錄下查找所有以“Test.py”結(jié)尾的所有文件,并運行所有測試。 PYTHONPATH 設置為“src”,測試執(zhí)行的當前工作目錄就是當前目錄(‘.’)。


當前標題:深度剖析Python測試框架內(nèi)容
URL地址:http://uogjgqi.cn/article/cojjoop.html
掃二維碼與項目經(jīng)理溝通

我們在微信上24小時期待你的聲音

解答本文疑問/技術咨詢/運營咨詢/技術建議/互聯(lián)網(wǎng)交流