DTest是一個測試框架,類似Python所提供的標準單元測試包。的增值為DTest,但是,是測試執行線程,通過使用eventlet包。該DTest包還提供測試和測試夾具之間的“相關性”的概念 - 因此,“D”,在“DTest” - 這確保測試不運行,直到匹配設立測試夾具已經完成,那推倒測試裝置不運行,直到所有的相關測試已經完成。依賴關係,也可以使用,以確保需要的某些功能的可用性測試不運行,如果該特定功能的測試失敗。
編寫測試
最簡單的測試程序簡單函數的名字與位於Python源文件的名稱也以“測試”開始的“測試”。它甚至沒有必要導入DTest框架的任何部分。如果測試是在收集類,但是,如果使用DTest的更高級的功能需要,從dtest進口*簡單是必要的。這使得可用DTestCase類 - 以及此類裝飾器作為@skip和@nottest - 應當由含有測試所有的類進行擴展。
測試可以使用標準的Python斷言語句來執行;然而,是dtest.util模塊(也可安全用於導入*)可用多項實用例程。許多這些實用程序具有類似於unittest.TestCase的方法名字 - 例如,dtest.util.assert_dict_equal()是類似於unittest.TestCase.assertDictEqual()。
測試夾具
該DTest框架支持的測試夾具 - 建立和拆除功能 - 在類,模塊和封裝級。包級別的裝置包括()包含在“__init__.py”文件命名設置功能和tearDown();同樣,模塊級的裝置組成的函數中包含測試函數和類的測試方法沙美島模塊設置()和tearDown()。在類級別,類別可能包含setUpClass()和tearDownClass()類方法(或靜態方法),這可以執行建立和拆除為每個類。在所有情況下,設置()函數和setUpClass()方法之前的任何同一範圍內的測試被執行;同樣地,所有的測試在給定的範圍已經執行後,相應的tearDownClass()方法和tearDown()函數被執行。
該DTest框架還支持每個測試設置()和tearDown()函數或方法,它前後各相關測試後運行。對於包含測試類,每個測試自動有設置()和tearDown(),與之相關的類的方法;然而,對於所有的測試,這些裝置可以被顯式地設置(或從類默認覆蓋)。請看下面的例子:
@istest
DEF test_something():
 #測試的東西在這裡
 通
@ test_something.setUp
DEF something_setup():
 #獲取一切準備就緒整裝待發...
 通
@ test_something.tearDown
DEF something_teardown():
 #清理後自己
 通
在這個例子中,一個DTest裝飾(比@nottest其他)是必要的前述test_something();在這裡,我們使用@istest,但任何其他可用DTest裝飾器可以在此使用。這使得@ test_something.setUp和@ test_something.tearDown裝飾用。 (對於標準Python類似的東西,檢查出的內置@property裝飾)。
運行測試
運行使用DTest框架測試是相當直接的。所謂運行dtests的腳本可用。默認情況下,在當前目錄中掃描所有模塊或包的名稱以“測試”;搜索也向下遞歸遍歷所有的包。 (一“包”被定義為包含“__init__.py”的目錄)。一旦所有的試驗中發現,它們被隨後執行,並且測試結果發射到標準輸出。
幾個命令行選項可用於控制運行dtests的行為。例如,“--no跳過”選項將導致運行dtests運行所有測試,即使是那些裝飾著@skip裝飾,而“-d”選項使運行dtests來搜索一個特定的目錄,而不是當前目錄。有關選項的完整列表,請使用“-h”或“--help”選項。
在命令行中運行運行dtests不運行測試的唯一方法,但是。運行dtests腳本是一個非常簡單的腳本解析命令行選項(使用由dtest.optparser()函數構造的OptionParser),轉換這些選項為一組關鍵字參數(使用dtest.opts_to_args()),然後通過這些關鍵字參數來dtest.main()函數。用戶可以利用這些功能來建立相同的功能與用戶相關的擴展,如提供一個備用DTestOutput實例來控制如何測試結果顯示,或用於控制哪些測試被跳過提供的替代方法。見這些函數和類的文檔字符串的更多信息
要求:
- 在Python的
評論沒有發現