Visual Studio Code 測試使用和設定說明
訂閱 480
VSCode 使用測試功能影片示範 YouTube
Visual Studio Code 測試
在 Visual Studio Code 中進行測試,通常需要安裝對應的語言延伸模組,以及測試工具。以 Python 為例,除了安裝延伸模組 Python,還需要 Python 套件unittest或pytest。
如需尋找與測試相關的延伸模組,可以在延伸模組面板中按類別篩選(在延伸模組面板的搜尋欄輸入@category:testing)。
由於不同語言的測試方式可能存在較大的不同,本文主要介紹 VSCode 中與測試相關的通用操作和功能。
為什麽需要測試?
對於小型專案,開發者可能更傾向於快速疊代,而跳過系統化的測試。然而,在大型專案或團隊協作環境中,測試是保證程式碼質量、升階可維護性的關鍵環節。
在 Visual Studio Code 中設定測試環境
一般情況下,在用於測試的延伸模組啟動後,VSCode 會顯示測試面板。根據延伸模組的不同,你可能需要在面板中進行更為詳細的組態。
以設定 Python 程式碼的測試為例,如果選擇使用unittest套件,則將把test目錄中,檔案名包含test的 Python 腳本檔案,視為需要測試的檔案。設定完成後,可能需要重新啟動 VSCode。
搜尋測試檔案的方式與延伸模組和工具相關
需要指出,具體搜尋測試檔案的方式,可能與延伸模組和工具相關。
比如,使用unittest測試時,可能不會搜尋子資料夾中的測試檔案。如果test資料夾的子資料夾math包含了test_math.py,那麽test_math.py不會被識別為測試檔案。
在 Visual Studio Code 中檢視檢測到的測試
一旦在測試檔案中檢測到可用的測試,他們將以樹形結構展示在測試面板中。如果你不習慣樹形結構,那麽可切換至串列結構。串列結構會以更加簡潔的方式列出所有測試。
在測試面板點選任意測試項,或通過其操作功能表項前往測試,可跳躍到該測試的程式碼。
測試面板未列出某些測試?
測試面板未列出某些測試的原因是多種的,但你可以嘗試點選面板重新整理測試按鈕,讓 VSCode 重新收集測試。
在 Visual Studio Code 中執行與偵錯測試
要執行或對測試偵錯,可在測試面板中,點選與目標測試相關的執行測試按鈕或對測試偵錯按鈕,或在選取目標測試的情況下,按Enter鍵,或在編輯器中點選裝訂邊中的,與測試程式碼對應的執行測試按鈕或相關的操作功能表項。
對於樹形結構,你可以點選某個層級對應的執行測試按鈕,或對測試偵錯按鈕,這將執行或偵錯該層級包含的所有測試。
點選測試面板的重新執行上次的執行按鈕,可重新執行上一批次的測試。點選測試面板的重新執行失敗的測試按鈕,可重新執行結果為失敗的測試。
篩選 Visual Studio Code 測試
在編寫大量測試之後,你可以通過篩選器篩選需要顯示的測試。比如,輸入與測試相關的關鍵字,或點選更多篩選…按鈕,選擇需要顯示的測試類型。
在 Visual Studio Code 中檢視測試結果
測試完成後,測試的結果將顯示在測試面板、裝訂邊、測試結果面板等位置。
如果測試結果為失敗,那麽相關的失敗資訊還將以標簽的形式,顯示在編輯器對應測試程式碼處。點選標簽或失敗的測試,可檢視關於失敗的詳細資訊。
測試結果面板會顯示不同批次的測試結果,這包括最後一批測試,和之前的測試。
點選測試結果面板中的某條測試,可在左邊顯示其測試的輸出資訊。點選某批次測試旁邊的顯示結果輸出按鈕,可顯示該批次測試的輸出資訊。點選測試面板的顯示輸出按鈕,可顯示最後一批測試的輸出資訊。
通過測試結果面板中,某條測試或某批次測試對應的按鈕或功能表項,可重新執行或偵錯他們,或跳躍至對應的測試程式碼處。
點選測試結果面板的清除所有結果按鈕,或點選測試面板中的清除所有結果功能表項,可清除所有批次的測試結果。
在 Visual Studio Code 中檢視測試的程式碼涵蓋範圍
VSCode 檢視測試的程式碼涵蓋範圍影片示範 YouTube
測試的程式碼涵蓋範圍用於表示測試到底覆蓋了多少程式碼,可用於衡量測試的完整性。
在測試面板的執行測試按鈕旁邊,一般可以看到執行涵蓋範圍測試按鈕,點選該按鈕即可執行測試,並計算本批測試的程式碼涵蓋範圍。
這裏,我們選擇執行測試test_add,並計算其程式碼涵蓋範圍。測試完畢後,可在測試涵蓋範圍或檔案總管中,檢視具體的涵蓋範圍。
程式碼涵蓋範圍一般以程式碼檔案或資料夾為單位,而具體參與計算的檔案和資料夾,以及涵蓋範圍的計算方式和結果,由相關延伸模組和工具決定。當你使用不同的延伸模組或工具時,同一種測試的程式碼涵蓋範圍可能是不同的。
涵蓋範圍可能會分為陳述式、分支或更多統計方式。以檔案為例,陳述式涵蓋範圍,是指該檔案中被測試執行的陳述式,占該檔案所有陳述式的比例。分支涵蓋範圍,是指該檔案中被測試執行的分支,占該檔案所有分支的比例。
在測試面板的測試涵蓋範圍或檔案總管中,點選某個被計算的程式碼檔案,即可檢視被覆蓋的程式碼有哪些,VSCode 會以不同的色彩,來表示被覆蓋或未被覆蓋的程式碼。
這裏,我們點選腳本檔案my.py,裝訂邊顯示為墨綠色的為被覆蓋的程式碼,顯示為紅色的為未被覆蓋的程式碼,當然,具體色彩與你所使用的 VSCode 主題有關。