使用 GitHub Copilot 進行測試
編寫與維護測試是軟體開發中至關重要但往往耗時的部分。GitHub Copilot 透過協助您在 Visual Studio Code 中更有效率地編寫、偵錯及修復測試,簡化了此流程。本文將說明如何運用 Copilot 的測試功能來改善您的測試工作流程,並提高專案的測試覆蓋率。
Copilot 可協助處理下列測試任務
- 設定測試框架:協助您為專案及程式語言配置合適的測試框架與 VS Code 擴充功能。
- 生成測試程式碼:建立涵蓋應用程式程式碼的單元測試、整合測試以及端對端測試。
- 處理邊緣案例:生成全面的測試套件,以涵蓋邊緣案例與錯誤條件。
- 修復失敗的測試:針對測試失敗提供修復建議。
- 保持一致性:個人化 Copilot,使其生成的測試符合您專案的編碼規範。
如果您尚未擁有 Copilot 訂閱,可以透過註冊 Copilot 免費方案來免費使用 Copilot,並獲得每月一定額度的行內建議與 AI 點數。
自 2026 年 4 月 20 日起,Copilot Pro、Copilot Pro+、Max 及學生方案的新註冊將暫時暫停。
設定您的測試框架
為了加速您的測試工作流程,Copilot 可以協助設定專案所需的測試框架與 VS Code 擴充功能。Copilot 會根據您的專案類型建議合適的測試框架。
- 開啟聊天檢視 (⌃⌘I (Windows、Linux Ctrl+Alt+I))。
- 在聊天輸入欄位中輸入
/setupTests指令。 - 依照 Copilot 的指引來配置您的專案。
使用 Copilot 編寫測試
Copilot 可以透過生成涵蓋程式碼庫的測試程式碼,協助您為應用程式編寫測試。這包括單元測試、端對端測試以及針對邊緣案例的測試。
使用聊天提示詞 (Chat prompts)
-
開啟您的應用程式程式碼檔案。
-
開啟以下其中一個檢視畫面
- 聊天檢視 (Chat view) (⌃⌘I (Windows, Linux Ctrl+Alt+I))
- 行內聊天 (Inline Chat) (⌘I (Windows, Linux Ctrl+I))
-
輸入類似以下的提示詞
- "Generate tests for this code"(為此程式碼生成測試)
- "Write unit tests including edge cases"(編寫包含邊緣案例的單元測試)
- "Create integration tests for this module"(為此模組建立整合測試)
在 GitHub 文件中獲取更多關於使用 GitHub Copilot 編寫測試的指引。
使用編輯器智慧動作
若要直接為應用程式程式碼生成測試而無需輸入提示詞,您可以使用編輯器的智慧動作。
-
開啟您的應用程式程式碼檔案。
-
選擇您想要測試的程式碼(選填)。
-
按一下滑鼠右鍵並選擇 Generate Code(生成程式碼)> Generate Tests(生成測試)。
Copilot 將會在現有的測試檔案中生成測試程式碼,如果檔案不存在,則會建立一個新的測試檔案。
-
若有需要,可在行內聊天 (Inline Chat) 提示詞中提供額外上下文,以精煉生成的測試內容。
修復失敗的測試
Copilot 與 VS Code 中的「測試總管」(Test Explorer) 整合,並可協助修復失敗的測試。
- 在測試總管中,將滑鼠游標懸停在失敗的測試上
- 選擇 Fix Test Failure(修復測試失敗)按鈕(閃亮圖示)
- 審閱並套用 Copilot 建議的修復方案
或者,您也可以
- 開啟聊天檢視
- 輸入
/fixTestFailure指令 - 依照 Copilot 的建議來修復測試
當使用 代理程式 (Agents) 時,該代理程式會在執行測試時監控測試輸出,並自動嘗試修復並重新執行失敗的測試。
個人化測試生成
如果您的組織有特定的測試要求,您可以自訂 Copilot 生成測試的方式,以確保它們符合您的標準。您可以透過提供自訂說明來個人化 Copilot 生成測試的方式。例如
- 指定偏好的測試框架
- 定義測試的命名規範
- 設定程式碼結構偏好
- 要求特定的測試模式或方法論
獲取更多關於個人化 Copilot 測試生成的資訊。
提升測試生成品質的建議
若要在使用 Copilot 生成測試時獲得最佳結果,請遵循以下建議
- 在提示詞中提供關於您偏好測試框架的上下文
- 指定您需要的測試類型(單元測試、整合測試、端對端測試)
- 要求特定的測試案例或邊緣案例
- 要求測試符合您專案的編碼標準
後續步驟
- 嘗試使用瀏覽器代理工具測試 Web 應用程式。
- 深入了解 VS Code 中的 Copilot。
- 探索 VS Code 中的一般測試功能。
- 查看生成單元測試的範例提示詞