
- 單元測試框架教程
- 單元測試框架 - 首頁
- 單元測試框架 - 概述
- 單元測試框架 - 框架
- 單元測試框架 - API
- 單元測試框架 - 斷言
- 單元測試框架 - 測試發現
- 單元測試框架 - 跳過測試
- 單元測試框架 - 異常測試
- 單元測試框架 - 時間測試
- 單元測試框架 - Unittest2
- 單元測試框架 - 訊號處理
- 單元測試框架 - Doctest
- 單元測試框架 - Doctest API
- 單元測試框架 - Py.test 模組
- Nose 測試 - 框架
- Nose 測試 - 工具
- 單元測試框架資源
- 單元測試框架 - 快速指南
- 單元測試框架 - 資源
- 單元測試框架 - 討論
單元測試框架 - 訊號處理
unittest 的 -c/--catch 命令列選項以及 **catchbreak** 引數提供了在測試執行期間更有效的 Control-C 處理方式。啟用 catch break 行為後,Control-C 將允許當前正在執行的測試完成,然後測試執行將結束並報告到目前為止的所有結果。第二次 Control-C 將以通常的方式引發 KeyboardInterrupt。
如果呼叫了 unittest 處理程式但未安裝 signal.SIGINT 處理程式,則它將呼叫預設處理程式。對於替換已安裝處理程式並委派給它的程式碼,這通常是預期的行為。對於需要停用 unittest Control-C 處理的單個測試,可以使用 removeHandler() 裝飾器。
以下實用函式在測試框架中啟用 Control-C 處理功能:
unittest.installHandler()
安裝 Control-C 處理程式。當收到 **signal.SIGINT** 時,所有已註冊的結果都會呼叫 TestResult.stop()。
unittest.registerResult(result)
註冊一個 **TestResult** 物件以進行 Control-C 處理。註冊結果會儲存對其的弱引用,因此它不會阻止結果被垃圾回收。
unittest.removeResult(result)
刪除已註冊的結果。刪除結果後,將不再對該結果物件呼叫 TestResult.stop() 以響應 Control-C。
unittest.removeHandler(function = None)
在不帶引數呼叫時,此函式將刪除已安裝的 Control-C 處理程式。此函式也可以用作測試裝飾器,以便在執行測試時臨時刪除處理程式。
GUI 測試執行器
安裝 unittest 模組以互動方式發現和執行測試。此實用程式(一個 Python 指令碼“inittestgui.py”)使用 Tkinter 模組,這是一個 Python 的 TK 圖形工具包埠。它提供了一個易於使用的 GUI 來發現和執行測試。
Python unittestgui.py

單擊“發現測試”按鈕。將出現一個小的對話方塊,您可以在其中選擇要從中執行測試的目錄和模組。

最後,單擊“開始”按鈕。將從選定的路徑和模組名稱發現測試,結果窗格將顯示結果。

要檢視單個測試的詳細資訊,請選擇結果框中的測試並單擊它:

如果在 Python 安裝中找不到此實用程式,您可以從專案頁面獲取它 http://pyunit.sourceforge.net/。
類似地,基於 wxpython 工具包的實用程式也在那裡提供。