Visual Studio 測試總管常見問題集

動態測試探索

[測試總管] 找不到動態定義的測試。 (例如理論、自訂配接器、自訂特徵、#ifdef 等項目)我如何探索這些測試?

建置專案來執行以組件為基礎的探索。

即時測試探索是來源型的測試探索。 其無法探索使用理論、自訂配接器、自訂特徵及 #ifdef 陳述式等項目的測試,因為這些項目均已在執行階段中定義。 需要組建才能準確找到這些測試。 在 Visual Studio 2017 15.6 版及更新版本中,以組件為基礎的探索 (傳統型探索) 只會在建置之後執行。 這項設定表示當您在編輯時,即時測試探索會盡可能找到更多測試,而組件型探索允許動態定義的測試在組建之後顯示。 即時測試探索會改善回應性,但仍然可讓您在建置後取得完整且精確的結果。

測試總管 '+' (加號) 符號

顯示在測試總管最上面一行的 '+' (加號) 符號代表什麼?

'+' (加號) 表示可以在執行以組件為基礎的探索時,在建置後探索更多測試。 如果在專案中偵測到動態定義的測試,就會出現此符號。

Plus symbol summary line

即時測試探索

現在當我打字時,測試會顯示在測試總管中,而不需要建置我的專案。 變更的項目為何?

此功能稱為即時測試探索。 這項功能使用 Roslyn 分析器來探索測試並即時填入 [測試總管],因此不需要建置您的專案。 如需動態定義測試 (例如理論或自訂特徵) 的測試探索行為詳細資訊,請參閱動態測試探索

即時測試探索相容性

哪些程式設計語言和測試架構可以使用「即時測試探索」?

即時測試探索以 Roslyn 編譯器建置,因此只適用於受控語言 (C# 和 Visual Basic)。 目前,即時測試探索只適用於 xUnit、NUnit 和 MSTest 架構。

測試總管記錄

如何開啟測試總管的記錄?

巡覽至 [工具]>[選項]>[測試] 並於該處尋找 [記錄] 區段。

UWP 測試探索

為什麼我在部署應用程式前無法探索到 UWP 專案中的測試?

部署應用程式時,UWP 測試會以其他執行階段為目標。 這表示若要精確找到 UWP 專案的測試,您不僅需要建置專案,還需要進行部署。

測試總管排序

階層架構檢視中的排序測試結果是如何運作的?

階層架構檢視會依字母順序排序排序結果,而不根據輸出。 先前分組依據設定會按照結果及字母順序來排序測試結果。 您仍然可以在 [測試總管] 中的資料行標頭上按一下滑鼠右鍵,啟用 [狀態] 資料行,然後按一下 [狀態] 資料行標頭,以在該資料行上套用排序,藉以啟用依結果排序。 您可在此 GitHub 問題中對設計提出意見反應。

測試總管階層檢視

在階層檢視中,父節點群組旁邊會有通過、失敗、略過和未執行的圖示。 這些圖示代表什麼意思?

專案、命名空間和類別群組旁的圖示,會顯示出該群組內的測試狀態。 請參閱下表。

Test Explorer Hierarchy Icons

依檔案路徑搜尋

在 [測試總管] 搜尋方塊中,已無「檔案路徑」篩選條件。

Visual Studio 2017 15.7 版已移除 [測試總管] 搜尋方塊中的檔案路徑篩選條件。 此功能的使用率很低,且排除這項功能可讓 [測試總管] 更快速地擷取測試方法。 如果此變更中斷您的開發流程,請在開發人員社群提交意見反應來告訴我們。

移除未記載的介面

某些與測試相關的 API 不再存在於 Visual Studio 2019。 變更的項目為何?

在 Visual Studio 2019 中,會移除一些先前標記為公用,但從未正式記載的測試視窗 API。 它們在 Visual Studio 2017 中標示為「已淘汰」,可為延伸模組維護人員提供初期警告。 據我們所知,很少有延伸模組發現及依存於這些 API。 這些包括 IGroupByProviderIGroupByProvider<T>KeyComparerISearchFilterISearchFilterTokenISearchTokenSearchFilterTokenType。 如果這項變更會影響您的延伸模組,請在 Developer Community (開發人員社群) 提出 Bug 讓我們知道。

測試配接器 NuGet 參考

在 Visual Studio 2017 15.8 版中, 已探索到我的註冊,但不會執行。

所有測試專案的 csproj 檔案中都必須包含 .NET 測試配接器 NuGet 參考。 如果未包含在其中,若測試配接器延伸模組的探索在建置之後開始,或使用者嘗試執行選取的測試,專案上就會顯示下列測試輸出:

測試專案 {} 未參考任何 .NET NuGet 配接器。 這個專案的測試探索或執行會無法執行。 建議您在解決方案中的每個 .NET 測試專案參考 NuGet 測試配接器。

專案必須使用測試配接器 NuGet 套件,而非使用測試配接器延伸模組。 使用持續整合時,此需求可大幅改善效能並減少問題的發生。 在版本資訊深入了解 .NET 測試配接器延伸模組淘汰。

找不到 UWP TestContainer

我無法在 Visual Studio 2017 15.7 版及更新版本中執行 UWP 測試。

最近的 UWP 測試專案指定一個測試平台建置屬性,可讓識別測試應用程式時的效能更佳。 如果您有在 Visual Studio 15.7 版之前初始化的 UWP 測試專案,您可能會在 [輸出]>[測試] 中看到此錯誤:

System.AggregateException: One or more errors occurred. ---> System.InvalidOperationException: The following TestContainer was not found {} at Microsoft.VisualStudio.TestWindow.Controller.TestContainerProvider <GetTestContainerAsync>d__61.MoveNext()

修正這個錯誤:

  • 使用下列程式碼來更新您的測試專案組建屬性:
<UnitTestPlatformVersion Condition="'$(UnitTestPlatformVersion)' == ''">$(VisualStudioVersion)</UnitTestPlatformVersion>
  • 使用下列程式碼來更新 TestPlatform SDK 版本:
<SDKReference Include="TestPlatform.Universal, Version=$(UnitTestPlatformVersion)" />

使用預覽功能

在 Visual Studio 2019 中,您可以在 [工具] > [選項] > [環境] > [預覽功能] 中選擇加入預覽功能。