共用方式為


在 .NET 中測試

本文介紹測試的概念,並說明如何使用不同類型的測試來驗證程序代碼。 有多種工具可用於測試.NET應用程式,例如 .NET CLI整合開發環境(IDE)

測試類型

自動化測試是確保應用程式程式代碼執行作者所想要之用途的絕佳方式。 本文涵蓋單元測試、整合測試和負載測試。

單元測試

單元測試 是練習個別軟體元件或方法的測試,也稱為「工作單位」。單元測試應該只測試開發人員控制件內的程式碼。 這些不會測試基礎設施問題。 基礎結構考慮包括與資料庫、檔案系統和網路資源互動。

如需建立單元測試的詳細資訊,請參閱 測試工具。

整合測試

整合測試 與單元測試不同,因為它會練習兩個或多個軟體元件在一起運作的能力,也稱為「整合」。這些測試在測試中系統的更廣泛範圍內運作,而單元測試則著重於個別元件。 整合測試通常包括基礎結構考慮。

負載測試

負載測試 旨在判斷系統是否可以處理指定的負載。 例如,使用應用程式並行使用者的數目,以及應用程式以回應方式處理互動的能力。 欲了解更多網頁應用程式負載測試的資訊,請參見 ASP.NET Core 負載/壓力測試

測試注意事項

請記住,撰寫測試時要遵循最佳做法。 例如,測試驅動開發(TDD) 是在要測試的程式碼之前撰寫單元測試的時候。 TDD 就像在撰寫書籍之前為書建立大綱一樣。 單元測試可協助開發人員撰寫更簡單、可讀取且有效率的程序代碼。

測試工具

在 .NET 中執行測試時,涉及兩個組件:測試平台與測試框架。

測試平臺

測試平台是執行測試並與 IDE 和 CLI 等工具溝通的引擎。

使用 測試平台概覽 來了解 VSTest 與 Microsoft.Testing.Platform 的差異,並選擇最適合你情境的平台。

關於遷移指引,請參見 從 VSTest 遷移到 Microsoft.Testing.Platform

測試架構

測試架構建置在測試平臺之上。 它會以測試作者身分定義可供您使用的屬性和 API 集合。 它通常是由測試配接器提供,其可作為測試架構與測試平臺之間的通訊層。 熱門的測試框架有 MSTest、NUnit、TUnit 和 xUnit.net。

MSTest

MSTest 是所有.NET語言的Microsoft測試框架。 它具備擴充性,且能支援 .NET CLI、Visual Studio、Visual Studio Code 和 Rider。 它同時支援 VSTest 和 Microsoft.Testing.Platform。

如需詳細資訊,請參閱下列資源:

NUnit

NUnit 是一個適用於所有.NET語言的單元測試框架。 最初,NUnit 是從 JUnit 移植而來,目前的生產版本已重新撰寫,加入了許多新功能並支援多種 .NET 平台。 它是.NET基金會的project。 它同時支援 VSTest 和 Microsoft.Testing.Platform。

如需詳細資訊,請參閱下列資源:

TUnit

TUnit 完全建立在 Microsoft.Testing.Platform 之上,且不支援 VSTest。 如需詳細資訊,請參閱 TUnit 檔。

xUnit.net

xUnit.net 是一個免費、開源、以社群為中心的.NET單元測試工具。 NUnit v2 的原始發明者撰寫了 xUnit.net。 xUnit.net 是最新的 .NET 應用程式單元測試技術。 它也支援 ReSharper、CodeRush 和 TestDriven.NET。 xUnit.net 是 .NET 基金會 的一個project,並依其行為準則運作。 它同時支援 VSTest 和 Microsoft.Testing.Platform

如需詳細資訊,請參閱下列資源:

執行測試

.NET CLI

你可以用 .NET CLI 搭配 dotnet test 指令,從解決方案中執行所有測試專案的單元測試。 .NET CLI 透過使用者介面展現了大部分整合開發環境(IDE) 所提供的大部分功能。 .NET CLI 是跨平台的,可作為持續整合與交付 pipelines 的一部分使用。 .NET CLI 用於腳本化流程,以自動化常見任務。

IDE

無論你使用 Visual Studio、Visual Studio Code 或 Rider,都有圖形使用者介面用於測試功能。 例如,Live Unit Testing,IDE 可用的功能比 CLI 更多。 欲了解更多資訊,請參閱 使用 Visual Studio 包含及排除測試

另請參閱

如需詳細資訊,請參閱下列文章: