Microsoft。測試平台(MTP)功能

MTP 內建功能,並可透過 NuGet 套件擴充。

使用 Microsoft.Testing.Platform.MSBuild(它被 MSTest、NUnit 和 xUnit 執行器間接包含)時,只需安裝擴充功能的 NuGet 套件即可,這些擴充功能會自動被偵測並註冊,並且入口點會為您自動生成。

如果您透過設定 <GenerateTestingPlatformEntryPoint>false</GenerateTestingPlatformEntryPoint> 選擇退出自動產生的進入點,您必須在您的 Main 方法中手動註冊擴充功能。 每個擴充功能頁面都會記錄手動註冊呼叫。

需要 NuGet 套件的擴充功能會附帶自己的授權模式(有些較寬鬆),請務必參考你想使用的擴充套件所對應的授權。

有些擴充是 實驗性質:它們的 API 會標註診斷內容 TPEXP ,未來版本可能會改變,因此你必須先確認診斷內容才能使用。 實驗性擴展在以下列表中標示為(實驗性)。

從這裡開始

根據你的目標,請採用以下路徑:

依情境選擇

  • 需要自訂端子輸出: 端子輸出 (內建)
  • 需要 TRX 或 Azure DevOps 報告:測試報告(擴充功能)
  • 需要 GitHub Actions 原生輸出(日誌群組、註解與工作摘要):GitHub Actions 報告(擴充功能)
  • 需要覆蓋資料: 代碼覆蓋範圍 (擴展)
  • 需要當機或當機診斷: 當機與當機的備份 (擴充功能)
  • 需要在執行期間錄製螢幕:診斷(擴充功能,實驗性)
  • 需要部署並啟動已封裝的完整信任、UWP 或 AppContainer 測試主機:測試主機部署(擴充功能;實驗性啟動器 API)
  • 需要重複使用Microsoft.Extensions.Configuration、Microsoft.Extensions.Hosting或Microsoft.Extensions.Logging:Microsoft。擴展整合(擴展、實驗性)
  • 需要建立編輯器或整合開發環境(IDE): 伺服器模式 (內建)
  • 需要載入非編譯時參考的擴充功能: 動態擴充功能載入 (內建,選擇啟用)
  • 需要重試失敗的測試: 重試 (擴充功能)
  • 需要 hot reload 支援:熱重新載入(擴充功能)
  • 需要 Microsoft Fakes 支援:Microsoft Fakes (擴充功能)
  • 需要 OpenTelemetry 追蹤與指標: OpenTelemetry (擴充功能)
  • 需要向測試框架或擴充功能提供 AI 聊天用戶端:AI 整合(擴充功能,實驗性)
  • 遙測資料收集與退出: 遙測(擴充套件)

內建功能

這些功能是核心平台的一部分,不需要額外的 NuGet 套件。

終端輸出

狀態與進度回報至終端:輸出模式、ANSI 支援及進度指示器。

伺服器模式

透過 JSON-RPC,從編輯器、IDE 或其他工具驅動測試探索與執行。

動態延伸負載

當執行選擇加入時,從 JSON 清單載入明確宣告的擴充組件。

擴充功能

這些功能需要安裝 NuGet 套件。

測試報告

產生測試報告檔案(TRX、HTML、JUnit、CTRF、Azure DevOps、GitHub Actions)。

法規覆蓋範圍

在測試執行時收集程式碼覆蓋率資料。

崩潰與懸浮傾倒

當測試主機當機或卡死時,收集處理程序傾印檔案。

OpenTelemetry

在測試期間透過 OpenTelemetry 發布追蹤與指標。

AI 整合( 實驗性)

提供服務提供者中立的 AI 聊天客戶端,以測試框架與擴充功能,包括透過 Azure AI Foundry。

重試

用可設定的政策重試失敗的測試。

熱裝填

執行支援熱重載的測試以快速迭代。

Microsoft 偽件

執行使用 Microsoft Fakes 的存根和假件測試。

遙測

遙測資料收集。 了解如何選擇退出以及收集哪些資料。

診斷 (實驗性,於 MTP 2.3.0 引入)

擷取證據以診斷執行情況,例如使用錄影工具錄製螢幕畫面。

測試主機部署 (MTP 2.3.0 引入;穩定套件 API 自 MTP 2.4.0 開始;實驗性啟動器 API;MTP 2.5 引入的 UWP 與 AppContainer 支援)

控制測試主機的部署與啟動方式與地點,包括封裝的全信任測試主機、UWP 及 AppContainer 測試主機。

Microsoft.Extensions 整合(實驗性;記錄於 MTP 2.3.0 引入;組態與託管於 MTP 2.5 預覽版引入)

將 MTP 橋接至應用程式已在使用的 Microsoft.Extensions.* 函式庫,包括設定快照、由應用程式擁有的主機,以及診斷日誌轉發。