Visual Studio 使用教程:進行單元測試
Visual Studio 是功能完備的 IDE,可用于編碼、調試、測試和部署到任何平臺,Visual Studio使用 .NET 開發 iOS、Android 和 Web 應用和游戲。
使用Visual Studio定義和運行單元測試,以維護代碼的運行狀況,確保代碼覆蓋率以及在客戶這樣做之前發現錯誤和錯誤。經常運行單元測試以確保您的代碼正常運行。
創建單元測試
本節介紹如何創建單元測試項目。
在Visual Studio中打開要測試的項目。
為了演示示例單元測試,本文測試了一個名為HelloWorldCore的簡單“ Hello World”項目。該項目的示例代碼如下:
namespace HelloWorldCore public class Program { public static void Main() { Console.WriteLine("Hello World!"); } }在“解決方案資源管理器”中,選擇解決方案節點。然后,從頂部菜單欄中,選擇File > Add > New Project。
在新項目對話框中,找到要使用的測試框架的單元測試項目模板,然后選擇它。
單擊下一步,為測試項目選擇一個名稱,然后單擊創建。該項目已添加到您的解決方案中。
在單元測試項目中,通過右鍵單擊“ 引用”或“ 依賴項”,然后選擇“ 添加引用”,向要測試的項目添加引用。
選擇包含要測試的代碼的項目,然后單擊“ 確定”。
將代碼添加到單元測試方法中。例如,對于MSTest項目,您可以使用以下代碼。
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); HelloWorldCore.Program.Main(); var result = sw.ToString().Trim(); Assert.AreEqual(Expected, result); } } } }或者,對于NUnit項目,您可以使用以下代碼。
using using NUnit.Framework; using System.IO; using System; namespace HelloWorldTests { [TestClass] public class Tests { private const string Expected = "Hello World!"; [SetUp] public void Setup() { } [Test] public void TestMethod1() { using (var sw = new StringWriter()) { Console.SetOut(sw); HelloWorldCore.Program.Main(); var result = sw.ToString().Trim(); Assert.AreEqual(Expected, result); } } } }運行單元測試
打開測試資源管理器。
要打開測試資源管理器,請從頂部菜單欄中選擇“ 測試” >“ 測試資源管理器 ”。
通過單擊“全部運行”來運行單元測試。

測試完成后,綠色復選標記表示測試已通過。紅色的“ x”圖標表示測試失敗。

提示:您可以使用測試資源管理器從內置測試框架(MSTest)或第三方測試框架中運行單元測試。您可以將測試分為幾類,過濾測試列表,以及創建,保存和運行測試的播放列表。您還可以調試測試并分析測試性能和代碼覆蓋率。
查看現場單元測試結果
如果您在Visual Studio 2017或更高版本中使用MSTest,xUnit或NUnit測試框架,則可以查看單元測試的實時結果。
注意:實時單元測試僅在企業版中可用。
通過選擇“ 測試” >“ 現場單元測試” >“ 開始”,從“ 測試”菜單打開現場單元測試。
在編寫和編輯代碼時,在代碼編輯器窗口中查看測試結果。
單擊測試結果指示符以查看更多信息,例如覆蓋該方法的測試名稱。
使用IntelliTest生成單元測試
運行IntelliTest時,您可以查看哪些測試失敗,并添加任何必要的代碼來修復它們。您可以選擇將哪些生成的測試保存到測試項目中以提供回歸套件。在更改代碼時,請重新運行IntelliTest以使生成的測試與代碼更改保持同步。
提示:IntelliTest僅適用于以.NET Framework為目標的托管代碼。
分析代碼覆蓋率
若要確定項目代碼的實際比例是由編碼測試(例如單元測試)測試的,可以使用Visual Studio的代碼覆蓋功能。為了有效地防范錯誤,您的測試應使用大部分代碼。
使用第三方測試框架
您可以使用第三方測試框架(例如Boost,Google和NUnit)在Visual Studio中運行單元測試。使用NuGet軟件包管理器為您選擇的框架安裝NuGet軟件包。或者,對于NUnit和xUnit測試框架,Visual Studio包括預配置的測試項目模板,這些模板包含必要的NuGet包。
要創建使用NUnit的單元測試:
- 打開包含要測試的代碼的解決方案。
- 在解決方案資源管理器中右鍵單擊該解決方案,然后選擇添加 > 新建項目。
- 選擇NUnit Test Project項目模板。
單擊下一步,為項目命名,然后單擊創建。該項目模板包括對NUnit和NUnit3TestAdapter的NuGet引用。
將引用從測試項目添加到包含要測試的代碼的項目。
在解決方案資源管理器中右鍵單擊該項目,然后選擇添加 > 參考。(您也可以從“ 引用”或“ 依賴項”節點的右鍵單擊菜單中添加引用。)
將代碼添加到您的測試方法。
從測試資源管理器 ”中運行測試,或右鍵單擊測試代碼并選擇“運行測試”。
推薦閱讀:
本文內容到這里就結束了,本系列教程持續更新了,敬請期待~喜歡該產品的朋友可以點擊下載Visual Studio試用版免費體驗~
想要購買Visual Studio正版授權,或了解更多產品信息請點擊