檢查單元測試工具和環境
GitHub Copilot Chat 可用來根據您指定的程式碼建議單元測試。 例如,如果您指定方法簽章和本文,GitHub Copilot Chat 可以建議涵蓋輸入參數和預期輸出值的測試案例。 一旦測試專案包含一些測試案例,您就可以使用 GitHub Copilot 為其他測試案例產生程式碼完成建議。 使用程式碼行完成來產生單元測試可減少重複的程序,並協助確保您的程式碼經過徹底測試。
GitHub Copilot Chat 會使用您程式碼的內容和語意,建議可確保函式正確運作的判斷提示。 也可協助您針對可能難以手動識別的邊緣案例和邊界條件,撰寫測試案例。 例如,GitHub Copilot Chat 可以建議錯誤處理、null 值或非預期輸入類型的測試案例。
重要
產生的測試案例可能不會涵蓋所有可能的案例。 需要手動測試和程式碼檢閱,以確保程式碼的品質。
GitHub Copilot 對單元測試的支援
Copilot 可協助執行下列測試工作:
- 設定測試架構:取得為您的專案和語言設定正確的測試架構和 VS Code 延伸模組的協助。
- 產生測試程序代碼:建立涵蓋應用程式程式代碼的單元測試、整合測試和端對端測試。
- 處理邊緣案例:產生完整的測試套件,以涵蓋邊緣案例和錯誤狀況。
- 修正失敗的測試:收到修正測試失敗的建議。
- 維護一致性:將 Copilot 個人化,以產生遵循您專案程式代碼撰寫做法的測試。
設定測試架構
為了加速測試工作流程,Copilot 可協助您設定專案的測試架構和 VS Code 延伸模組。 Copilot 會根據您的項目類型建議適當的測試架構。
開啟 [聊天] 檢視。
請在 [聊天輸入] 欄位中輸入
/setupTests命令。請遵循 GitHub Copilot 的指引來設定您的專案。
使用 GitHub Copilot 撰寫單元測試
GitHub Copilot 可藉由產生涵蓋程式碼基底的測試程式碼,協助您撰寫應用程式程式碼的測試。 這包括單元測試、端對端測試,以及邊緣案例的測試。
您可以使用下列 GitHub Copilot 工具來產生單元測試:
- 聊天檢視:使用聊天檢視使用 Ask、Edit 或 Agent 模式,為專案、類別或方法產生單元測試。
- 內嵌聊天:使用內嵌聊天來產生所選類別或方法的單元測試。
- 智慧動作:使用 [產生測試] 智慧動作來產生所選程序代碼的單元測試,而不需撰寫提示。
- 程式碼行完成:使用程式碼行完成來為現有的測試案例建議新增的單元測試。
修正失敗的測試
Copilot 與 Visual Studio Code 中的測試總管整合,並有助於修正失敗的測試。
在 [測試總管] 中,將滑鼠停留在失敗的測試上。
選取 [ 修正測試失敗] 按鈕 (sparkle 圖示)
檢閱並套用 Copilot 的建議修正程式。
或者,您可以:
開啟 [聊天] 檢視。
輸入
/fixTestFailure斜線命令。遵循 Copilot 的建議來修正測試
小提示
代理程式模式會在執行測試時監視測試輸出,並自動嘗試修正並重新執行失敗的測試。
維護一致性
如果您的組織有特定的測試需求,您可以自定義 Copilot 產生測試的方式,以確保其符合您的標準。 您可以藉由提供自定義指示,將 Copilot 產生測試的方式個人化。 例如:
- 指定慣用的測試架構
- 定義測試的命名慣例
- 設定程式碼結構偏好
- 要求特定的測試模式或方法
單元測試的 Visual Studio Code 支援
若要在 Visual Studio Code 中建立和執行 C# 單元測試,您需要下列資源:
- .NET 8.0 SDK 或更新版本。
- 適用於 Visual Studio Code 的 C# 開發套件延伸模組。
- 已新增至專案的測試架構套件。
單元測試的 C# 開發套件支援
適用於 Visual Studio Code 的 C# 開發套件延伸模組提供一組豐富的功能,可協助您建立和管理 C# 專案的單元測試。 其中包含下列功能:
- 測試總管 - 一種樹狀檢視,可顯示工作區中的所有測試案例。
- 執行/偵錯測試案例 - 執行和偵錯測試案例的功能。
- 檢視測試結果 - 檢視測試結果的功能。
- 測試命令 - 用於執行所有測試、執行失敗的測試等等的命令。
- 測試設定 - 測試的特定設定。
- 測試架構套件
C# 開發套件支援下列測試架構:
- xUnit
- NUnit
- MSTest
C# 開發套件可讓您建立測試專案、新增測試架構套件,以及管理單元測試。
啟用測試架構
Visual Studio Code 中的命令選擇區提供為專案啟用測試架構最簡單的方式。 您可以透過下列方式開啟命令選擇區:
- 按 Ctrl + Shift + P 鍵 (Windows/Linux) 或按 Cmd + Shift + P (macOS)。
- 開啟 [檢視] 功能表,然後選取 [命令選擇區]。
- 開啟 [方案總管] 檢視,以滑鼠右鍵按一下解決方案資料夾,然後選取 [新增專案]。 此選項會開啟 [命令選擇區],其中已選取 .NET:New Project... 命令。
下列各節說明如何使用 [命令選擇區] 為您的 C# 專案啟用測試架構。
xUnit
開啟命令選擇區,接著選取 [.NET:新增專案...],然後選取 [xUnit 測試專案],並提供新專案的名稱和位置。 此命令會建立使用 xUnit 作為測試程式庫的新專案和目錄,並將下列 <PackageReference /> 元素新增至專案檔,以設定測試執行器。
Microsoft.NET.Test.SdkxUnitxunit.runner.visualstudiocoverlet.collector
您可以從終端執行下列命令:
dotnet add [location of your test csproj file] reference [location of the csproj file for project to be tested]
NUnit
開啟命令選擇區,接著選取 [.NET:新增專案...],然後選取 [NUnit3 測試專案],並提供新專案的名稱和位置。 此命令會建立使用 NUnit 作為測試程式庫的新專案和目錄,並將下列 <PackageReference /> 元素新增至專案檔,以設定測試執行器。
Microsoft.NET.Test.SdkNUnitNUnit3TestAdapter
從終端執行下列命令:
dotnet add [location of your test csproj file] reference [location of the csproj file for project to be tested]
MSTest
開啟命令選擇區,接著選取 [.NET:新增專案...],然後選取 [MSTest 測試專案],並提供新專案的名稱和位置。 此命令會建立使用 MSTest 作為測試程序庫的新專案和目錄,並將下列 <PackageReference /> 元素新增至專案檔,以設定測試執行器。
Microsoft.NET.Test.SdkMSTest.TestAdapterMSTest.TestFrameworkcoverlet.collector
從終端執行下列命令:
dotnet add [location of your test csproj file] reference [location of the csproj file for project to be tested]
使用 GitHub Copilot Chat 在 Visual Studio Code 中開發單元測試
Visual Studio Code 和 GitHub Copilot Chat 的組合提供強大的環境,可讓您建立和執行 C# 專案的單元測試。
單元測試程序可分成三個階段:
- 使用 Visual Studio Code 為您的單元測試建立測試專案。
- 使用 GitHub Copilot Chat 來開發 C# 專案的單元測試案例。
- 使用 Visual Studio Code 和 C# 開發套件來執行和管理單元測試。
建立測試專案
您必須建立將用來保留單元測試的測試專案。 您可以使用 Visual Studio Code 來完成下列工作:
使用 [命令選擇區] 來建立使用指定測試架構的測試專案。
使用整合式終端,將參考新增至您要測試的專案。
此程序會建立新專案,並設定所選架構的測試執行器。
使用 GitHub Copilot Chat 產生單元測試案例
GitHub Copilot Chat 可用來協助您撰寫測試架構的單元測試案例。 Copilot Chat 會辨識您的測試架構和編碼樣式,並產生相符的程式碼片段。 您可以使用 Copilot Chat 來完成下列工作:
根據編輯器中開啟的程式碼或您在編輯器中醒目提示的程式碼片段,撰寫測試架構的單元測試案例。 Copilot 會識別您的測試架構和編碼樣式,並產生相符的程式碼片段。
針對可能難以手動識別的邊緣案例和邊界條件,識別和撰寫測試案例。 例如,Copilot 可以建議錯誤處理、null 值或非預期輸入類型的測試案例。
根據程式碼的內容和語意,建議確保函式正常運作的判斷提示。 例如,產生判斷提示以確保函式輸入參數有效。
當要求 Copilot Chat 產生單元測試案例時,請考慮下列案例:
如果在編輯器中完整顯示單一方法,您可以輸入
Write a unit test for the method in the #editor來要求 Copilot Chat 為方法產生單元測試。如果有多個可見的方法,或預定的方法延伸到編輯器中可見的內容之外,請選取您要為其產生單元測試的程式碼,然後要求 Copilot:
#selection write a unit test for this code。
在 Visual Studio Code 中執行和管理單元測試
Visual Studio Code 和 C# 開發套件提供一組豐富的功能,可協助您執行和管理 C# 專案的單元測試。 您可以使用測試清單編輯器來執行/偵錯測試案例、檢視測試結果,以及管理測試案例。
執行/偵錯測試案例:C# 開發套件會在類別和方法定義的左側產生捷徑 (綠色播放按鈕)。 若要執行目標測試案例,請選取綠色播放按鈕。 您也可以以滑鼠右鍵按一下以查看更多選項。
測試總管:測試清單編輯器是一種樹狀檢視,可顯示工作區中的所有測試案例。 您可以選取 Visual Studio Code 左側 [活動] 列上的燒杯按鈕來開啟它。 您也可以執行/偵錯測試案例,並從該處檢視其測試結果。
檢視測試結果:執行/偵錯測試案例之後,會在編輯器裝飾和測試清單編輯器中更新相關測試項目的狀態。 您可以選取堆疊追蹤中的連結,以瀏覽至來源位置。
Visual Studio Code 測試命令:有測試命令 (例如,執行所有測試) 可供使用,可在命令選擇區中搜尋「測試:」來找到。
Visual Studio Code 測試設定:在 [設定] 編輯器中搜尋「測試」,即可找到測試專用的 Visual Studio Code 設定。
摘要
GitHub Copilot Chat 可用來根據您指定的程式碼建議單元測試。 例如,如果您指定方法簽章和本文,GitHub Copilot Chat 可以建議涵蓋輸入參數和預期輸出值的測試案例。 一旦測試專案包含一些測試案例,您就可以使用 GitHub Copilot 為其他測試案例產生程式碼完成建議。 使用程式碼行完成來產生單元測試可減少重複的程序,並協助確保您的程式碼經過徹底測試。
GitHub Copilot Chat 會使用您程式碼的內容和語意,建議可確保函式正確運作的判斷提示。 也可協助您針對可能難以手動識別的邊緣案例和邊界條件,撰寫測試案例。 例如,GitHub Copilot Chat 可以建議錯誤處理、null 值或非預期輸入類型的測試案例。