開始使用單元測試

適用于:是Visual Studio否Visual Studio for Mac否Visual Studio Code

使用 Visual Studio 來定義和執行單元測試,藉以維護程式碼的健康狀態、確定程式碼涵蓋範圍,以及在客戶遭遇問題之前找出錯誤和失敗。 經常執行單元測試,以確定您的程式碼運作正常。

在本文中,程式碼使用 C# 和 C++,圖例位於 C# 中,但概念和功能適用于 .NET 語言、C++、Python、JavaScript 和 TypeScript。

建立單元測試

本節說明如何建立單元測試專案。

  1. 在 Visual Studio 中開啟您要測試的專案。

    為了示範範例單元測試的目的,本文會測試名為HelloWorld的簡單「Hello World」 C# 或 C++ 主控台專案。 此類專案的範例程式碼如下所示:

    namespace HelloWorld
    {
       public class Program
       {
          public static void Main()
          {
             Console.WriteLine("Hello World!");
          }
       }
    }
    
  2. 在 [方案總管] 中,選取解決方案節點。 然後,從頂端功能表列選取 [檔案>新增>專案]。

  3. 在 [新增專案] 對話方塊中,尋找要使用的單元測試專案。

    在搜尋方塊中輸入 測試 ,以尋找您想要使用之測試架構的單元測試專案範本,例如 MSTest (C#) 或 原生單元測試 專案 (C++) ,然後加以選取。

    從 Visual Studio 2017 14.8 版開始,.NET 語言包含 NUnit 和 xUnit 的內建範本。 針對 C++,在此範例中,選取使用 Microsoft Native Unit Test Framework 的 Native Unit Test 專案。 (若要使用不同的 C++ 測試架構,請參閱 撰寫 C/C++ 的單元測試) 。 如需 Python,請參閱 在 Python 程式碼中設定單元測試 ,以設定測試專案。

    提示

    僅限 C#,您可以使用更快速的方法,從程式碼建立單元測試專案。 如需詳細資訊,請參閱 建立單元測試專案和測試方法。 若要搭配 .NET Core 或 .NET Standard 使用此方法,需要 Visual Studio 2019 或更新版本。

    下圖顯示 .NET 中支援的 MSTest 單元測試。

    Visual Studio 2022 中的單元測試專案範本

    按一下 [下一步],選擇測試專案的名稱,然後按一下 [建立]

    Visual Studio 2019 的單元測試專案範本

    按一下 [下一步],選擇測試專案的名稱,然後按一下 [建立]

    專案已加入您的方案中。

    [方案總管] 中的單元測試專案

    [方案總管] 中的單元測試專案

  4. 在單元測試專案中,以滑鼠右鍵按一下 [ 參考 ] 或 [ 相依性 ],然後選擇 [ 新增參考 ] 或 [ 新增專案參考],以新增您想要測試之專案的參考。

  5. 選取包含您要測試之程式碼的專案,然後按一下 [確定]OK

    在 Visual Studio 中新增專案參考

    在 Visual Studio 中新增專案參考

  6. 將程式碼新增至單元測試方法。

    例如,您可以選取符合測試架構的正確檔索引標籤來使用下列程式碼:.NET 僅支援 MSTest、NUnit 或 xUnit () ,或 C++ Microsoft Native Unit Test Framework。

    using Microsoft.VisualStudio.TestTools.UnitTesting;
    using System.IO;
    using System;
    
    namespace HelloWorldTests
    {
       [TestClass]
       public class UnitTest1
       {
          private const string Expected = "Hello World!";
          [TestMethod]
          public void TestMethod1()
          {
             using (var sw = new StringWriter())
             {
                Console.SetOut(sw);
                HelloWorld.Program.Main();
    
                var result = sw.ToString().Trim();
                Assert.AreEqual(Expected, result);
             }
          }
       }
    }
    

執行單元測試

  1. 開啟 [測試總管]。

    若要開啟 [測試總管],請從頂端功能表列選擇 [測試>管], (或按Ctrl + ET) 。

  2. 按一下 [全部執行] (或按Ctrl + RV) 來執行單元測試。

    在測試總管中執行單元測試

    在測試總管中執行單元測試

    測試完成之後,綠色的核取記號表示測試通過。 紅色的 "x" 圖示表示測試失敗。

    在 [測試總管] 中檢閱單元測試結果

    在 [測試總管] 中檢閱單元測試結果

提示

您可以使用 [測試總管] 從內建的測試架構 (MSTest) 或從協力廠商測試架構執行單元測試。 您也可以將測試分組成分類、篩選測試清單,以及建立、儲存和執行測試播放清單。 您也可以偵錯測試和分析測試效能和程式碼涵蓋範圍。

檢視即時單元測試結果 (Visual Studio Enterprise)

如果您在 Visual Studio 2017 或更新版本中使用 MSTest、xUnit 或 NUnit 測試架構,則可以查看單元測試的即時結果。

注意

若要遵循下列步驟,需要Visual Studio Enterprise,以及 .NET 程式碼和下列其中一個測試架構:MSTest、xUnit 或 NUnit。

  1. 從 [測試] 功能表中選擇 [測試]>[Live Unit Testing]>[啟動] 來開啟 Live Unit Testing。

    在 Visual Studio 2019 中啟動 Live Unit Testing

    在 Visual Studio 2022 中啟動即時單元測試

  2. 當您撰寫和編輯程式碼時,在程式碼編輯器視窗中檢視測試的結果。

    檢閱測試的結果

    檢閱測試的結果

  3. 按一下測試結果指標查看詳細資訊,例如涵蓋該方法的測試名稱。

    選擇測試結果指標

    選擇測試結果指標

如需 Live Unit Testing 的詳細資訊,請參閱 Live Unit Testing

使用協力廠商測試架構

您可以根據程式設計語言,使用 NUnit、Boost 或 Google C++ 測試架構等協力廠商測試架構,在 Visual Studio 中執行單元測試。 若要使用協力廠商架構:

  • 使用 NuGet 套件管理員安裝您選擇的架構 NuGet 套件。

  • (.NET) 從 Visual Studio 2017 14.6 版開始,Visual Studio 包含 NUnit 和 xUnit 測試架構的預先設定測試專案範本。 範本也包含啟用支援所需的 NuGet 套件。

  • (C++) Visual Studio 2017 和更新版本中,已包含一些像是 Google C++ 測試架構的架構。 如需詳細資訊,請參閱 在 Visual Studio 中撰寫 C/C++ 的單元測試

若要新增單元測試專案:

  1. 開啟包含您要測試之程式碼的解決方案。

  2. 以滑鼠右鍵按一下 [方案總管] 中的解決方案,然後選擇 [新增]>[新增專案]

  3. 選取單元測試專案範本。

    在此範例中,選取 [NUnit]

    Visual Studio 2022 中的 NUnit 測試專案範本

    Visual Studio 2019 的 NUnit 測試專案範本

    按一下 [下一步]、命名專案,然後按一下 [建立]

    專案範本包括 NUnit 和 NUnit3TestAdapter 的 NuGet 參考。

    [方案總管] 中的 NUnit NuGet 相依性

    [方案總管] 中的 NUnit NuGet 相依性

  4. 從測試專案將參考新增至包含您想要測試之程式碼的專案。

    以滑鼠右鍵按一下 [方案總管] 中的專案,然後選取 [新增]>[參考]。 (您也可以從 [參考] 或 [相依性] 節點的滑鼠右鍵功能表中加入參考。)

  5. 將程式碼新增至您的測試方法。

    將程式碼新增至您的單元測試程式碼檔案

    將程式碼新增至您的單元測試程式碼檔案

  6. 測試總管執行測試,或以滑鼠右鍵按一下測試程式碼,然後選擇 [執行測試] (s) (Ctrl + RT) 。

後續步驟