共用方式為


.NET 測試平台概述

在 .NET 中,測試框架與測試平台是不同的組件,共同工作以發現並執行測試。

  • 測試框架定義了你所撰寫的測試模型,例如 MSTest、NUnit、xUnit.net 或 TUnit。
  • 測試平台執行測試、整合 IDE 與 CLI,並提供共享擴充點。

你可以在兩個測試平台中選擇:

  • VSTest
  • Microsoft.Testing.Platform (MTP)

小提示

最簡單的設定是選擇一個平台來建立你的儲存庫,並針對該平台持續配置測試專案、CI 和工具。 不要在同一解決方案或執行設定中混用基於 VSTest 和 Microsoft.Testing.Platform 的 .NET 測試專案,因為該設定不支援。 如果你也執行依賴 VSTest 的非 .NET 測試(例如 C++ 或 JavaScript 測試),請將這些測試與基於 MTP 的 .NET 測試分開配置執行。

如何選擇你的平台

請利用以下情境快速做出選擇。

使用案例 選擇 為什麼
你需要 Native AOT 或修剪測試執行場景。 Microsoft.Testing.Platform MTP 支援這些現代部署情境,而 VSTest 則不支援。
你是在建立打包的 WinUI 或 UWP 測試專案。 VSTest 這些專案類型目前不支援 MTP。
你需要混合使用 .NET 測試和非 .NET 測試介面卡(例如 JavaScript 或 C++ 介面卡)。 VSTest VSTest 支援混合語言介面卡情境,而 MTP 則是針對 .NET 專用的。
你希望測試專案的行為像一般的執行檔(,直接執行檔運行 ,以及啟動專案的 F5 流程)。 Microsoft.Testing.Platform MTP 是優先執行檔,所以測試應用程式在本地和 CI 工作流程中會像標準的 .NET 應用程式一樣執行。
你依賴於現有工具間長期建立的整合。 VSTest VSTest 擁有最長的相容性紀錄,涵蓋現有產品、任務與流程。 MTP 支援在生態系統中持續成長,但部分整合可能落後於 VSTest。
你偏好嚴格的預設和明確的行為。 Microsoft.Testing.Platform MTP 偏好確定性執行,採用輕量級、可選擇加入的擴充模型及建置時註冊。 例如,當不執行測試時,它可能會失敗,減少環境依賴的變異性,並允許你在每個環境中停用個別擴充功能。
你偏好較柔和、廣泛且向下相容的預設。 VSTest 兩個平台都重視向下相容性。 VSTest 優先為多元且現有的工具鏈提供相容性導向的預設,而 MTP 則在其自有擴充模型中提供向下相容性。
你被 VSTest 特定的問題或行為阻擋在你目前的工作流程中。 Microsoft.Testing.Platform 在許多情況下,因為執行時模型和擴充架構不同,移到 MTP 後,相同的工作流程並不會受到影響。

如果你的具體使用情境沒有列出,兩個平台都是合理的選擇。

整合與工具支援

整合領域 VSTest Microsoft.Testing.Platform
IDE 整合 成熟地整合 Visual Studio 及其他依賴 VSTest 協定與轉接器的工具。 支援 Visual Studio 與 Visual Studio Code 情境,並在生態系統部分區域持續進行整合工作。
CI 與外部工具 廣泛支援長期存在的 Microsoft 及非 Microsoft 工具與任務。 在Azure DevOps中,你可以使用 VSTest 任務(VSTest@3vstest.console)或 .NET 任務(DotNetCoreCLI@2dotnet test)。 它在 CI 和現代 .NET 工作流程中運作,但有些第三方整合可能還是落後於 VSTest。 在Azure DevOps中,使用.NET任務(DotNetCoreCLI@2dotnet test)。
行為 預設的 VSTest 模式。 VSTest 的論點和行為都適用。 原生 MTP 模式可在 .NET 10 SDK 及更新版本中提供。

關於模態與參數的完整細節 ,請參見 Testing with 。

從你的測試框架開始

如果你選擇VSTest的話

  • MSTest: 用 MSTest 執行測試
  • NUnit: NUnit 與 Microsoft.Testing.Platform
  • xUnit.net:開始使用 xUnit.net
  • TUnit:不支援於 VSTest 上。 請使用 Microsoft.Testing.Platform。

如果你選擇 Microsoft.Testing.Platform

  • MSTest: 用 MSTest 執行測試
  • NUnit: Microsoft.Testing.Platform 在 NUnit 中的支援(NUnit 執行器)
  • xUnit.net: Microsoft 測試平台(xUnit.net v3)
  • TUnit: TUnit documentation

後續步驟

  • 學習 MTP 概念: Microsoft.Testing.Platform 概述
  • 了解 VSTest 選項
  • 從 VSTest 遷移: 從 VSTest 遷移到 Microsoft.Testing.Platform
  • 新增功能: Microsoft.Testing.Platform 功能