檢視 Visual Studio Code 對單元測試的支援

已完成

在你能用 GitHub Copilot 產生單元測試之前,你的專案需要一個可運作的測試框架,以及在 Visual Studio Code 內執行測試的方法。 Visual Studio Code、.NET SDK 和 C# Dev Kit 擴充功能提供單元測試的環境,而 GitHub Copilot 則專注於產生和優化測試程式碼。 了解底層環境會讓 GitHub Copilot 的工作流程更容易理解。

本單元將探討支援單元測試的 Visual Studio Code 功能與 C# 工具。 後續單元將聚焦於 GitHub Copilot 如何生成並維護在此環境中執行的測試程式碼。

Visual Studio Code 對單元測試的支援

要在 Visual Studio Code 中建立並執行 C# 單元測試,你需要以下資源:

  • .NET 8.0 SDK 或更新版本。
  • Visual Studio Code 的 C# 開發套件擴充功能。
  • 已新增至專案的測試架構套件。

單元測試的 C# 開發套件支援

C# 開發套件擴充功能提供了你在本模組中使用的測試功能:

  • 測試總管:一個樹狀檢視,顯示工作區中所有測試案例。 你可以選取活動列上的燒杯圖示來開啟測試總管。
  • 執行/除錯測試案例:在編輯器中,每個測試類別和方法旁邊會出現綠色播放按鈕。 右鍵點擊播放按鈕可查看更多選項。
  • 查看測試結果:測試執行結束後,結果會反映在編輯器裝飾及測試檔案總管中。 在堆疊追蹤中選擇連結可導向來源位置。
  • 測試指令:這 Test: Run All Tests 類指令可在指令面板中使用。 搜尋 Test: 以查看完整清單。
  • 測試設定:控制測試發現與執行時行為的設定可在設定編輯器中取得。 搜尋 Testing 以查看可用的選項。

C# 開發套件支援下列測試架構:

  • xUnit
  • NUnit
  • MSTest

使用 Command Palette 建立一個測試專案

Visual Studio Code 中的指令調色盤提供了建立使用支援框架測試專案的最簡單方法。 您可以透過下列方式開啟命令選擇區:

  • Ctrl + Shift + P 鍵(Windows/Linux)或 Cmd + Shift + P macOS 按。
  • 打開 檢視 選單,然後選擇 指令面板
  • 打開方案總管檢視,右鍵點擊解決方案資料夾,然後選擇New Project。 此選項會開啟指令面板,並預先選取 .NET: New Project... 命令。

以下章節將說明如何為每個支援框架建立測試專案。

xUnit

打開指令面板,選擇 .NET:新Project...,選擇 xUnit Test Project,然後為新project提供名稱與位置。 此指令建立一個專案,使用 xUnit 作為測試函式庫,並透過在專案檔案中加入以下 <PackageReference /> 元素來配置測試執行器:

  • Microsoft.NET.Test.Sdk
  • xUnit
  • xunit.runner.visualstudio
  • coverlet.collector

從整合的終端機中,你可以將測試專案的參考資料加入測試中的專案:

dotnet add [location of your test csproj file] reference [location of the csproj file for project to be tested]

NUnit

打開指令面板,選擇 .NET:新Project...,選擇 NUnit3 測試 Project,然後提供新project的名稱與位置。 此指令建立一個專案,使用 NUnit 作為測試函式庫,並在專案檔案中新增以下 <PackageReference /> 元素:

  • Microsoft.NET.Test.Sdk
  • NUnit
  • NUnit3TestAdapter

從終端機新增受測專案的參考:

dotnet add [location of your test csproj file] reference [location of the csproj file for project to be tested]

MSTest

打開指令面板,選擇 .NET:新Project...,選擇MSTest Test Project,然後提供新project的名稱與地點。 此指令會在專案檔案中新增以下 <PackageReference /> 元素:

  • Microsoft.NET.Test.Sdk
  • MSTest.TestAdapter
  • MSTest.TestFramework
  • coverlet.collector

從終端機新增受測專案的參考:

dotnet add [location of your test csproj file] reference [location of the csproj file for project to be tested]

在 Visual Studio Code 中執行和管理單元測試

在測試專案存在後,Visual Studio Code 和 C# 開發套件提供多種執行和管理測試的方法:

  • 從編輯器執行/除錯:選擇類別或方法旁的綠色播放按鈕來執行該目標。 以滑鼠右鍵按一下執行按鈕,即可看到例如 執行測試偵錯測試 等選項。
  • 測試總管:從樹狀檢視中執行或除錯個別測試、群組或整個套件。 每題旁會出現測試結果,包括通過/不通過圖示和持續時間。
  • 查看測試結果:編輯器裝飾與測試總管都會反映每次測試執行後的狀態。 在堆疊追蹤中點選連結,即可跳至發生錯誤的程式碼行。
  • 測試指令:使用像 Test: Run All TestsTest: Debug Failed Tests、 以及 Test: Show Output 指令面板中的指令。
  • 測試設定:在設定編輯器中搜尋 Testing,以設定儲存時自動執行或測試結果的格式等行為。

使用 GitHub Copilot 的單元測試工作流程

當你將 Visual Studio Code 與 GitHub Copilot 結合時,單元測試流程可分為三個階段:

  1. 設定環境:使用 Visual Studio Code、.NET SDK 和 C# 開發套件來建立測試專案,並參考受測專案。 你已完成此單元中的這個階段。
  2. 產生測試程式碼:在聊天視窗中使用GitHub Copilot來產生應用程式程式碼的單元測試。 接下來的單元將涵蓋此階段。
  3. Run and maintain tests:使用 Test Explorer 和 C# Dev Kit 執行測試,然後用 GitHub Copilot 擴展覆蓋範圍並修正失敗的測試。

其餘單元則聚焦於支援第 2 和第 3 階段的 GitHub Copilot 工具。