Visual Studio 使用教程:進(jìn)行單元測(cè)試
Visual Studio 是功能完備的 IDE,可用于編碼、調(diào)試、測(cè)試和部署到任何平臺(tái),Visual Studio使用 .NET 開發(fā) iOS、Android 和 Web 應(yīng)用和游戲。
使用Visual Studio定義和運(yùn)行單元測(cè)試,以維護(hù)代碼的運(yùn)行狀況,確保代碼覆蓋率以及在客戶這樣做之前發(fā)現(xiàn)錯(cuò)誤和錯(cuò)誤。經(jīng)常運(yùn)行單元測(cè)試以確保您的代碼正常運(yùn)行。
創(chuàng)建單元測(cè)試
本節(jié)介紹如何創(chuàng)建單元測(cè)試項(xiàng)目。
在Visual Studio中打開要測(cè)試的項(xiàng)目。
為了演示示例單元測(cè)試,本文測(cè)試了一個(gè)名為HelloWorldCore的簡單“ Hello World”項(xiàng)目。該項(xiàng)目的示例代碼如下:
namespace HelloWorldCore public class Program { public static void Main() { Console.WriteLine("Hello World!"); } }在“解決方案資源管理器”中,選擇解決方案節(jié)點(diǎn)。然后,從頂部菜單欄中,選擇File > Add > New Project。
在新項(xiàng)目對(duì)話框中,找到要使用的測(cè)試框架的單元測(cè)試項(xiàng)目模板,然后選擇它。
單擊下一步,為測(cè)試項(xiàng)目選擇一個(gè)名稱,然后單擊創(chuàng)建。該項(xiàng)目已添加到您的解決方案中。
在單元測(cè)試項(xiàng)目中,通過右鍵單擊“ 引用”或“ 依賴項(xiàng)”,然后選擇“ 添加引用”,向要測(cè)試的項(xiàng)目添加引用。
選擇包含要測(cè)試的代碼的項(xiàng)目,然后單擊“ 確定”。
將代碼添加到單元測(cè)試方法中。例如,對(duì)于MSTest項(xiàng)目,您可以使用以下代碼。
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); } } } }或者,對(duì)于NUnit項(xiàng)目,您可以使用以下代碼。
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); } } } }運(yùn)行單元測(cè)試
打開測(cè)試資源管理器。
要打開測(cè)試資源管理器,請(qǐng)從頂部菜單欄中選擇“ 測(cè)試” >“ 測(cè)試資源管理器 ”。
通過單擊“全部運(yùn)行”來運(yùn)行單元測(cè)試。
測(cè)試完成后,綠色復(fù)選標(biāo)記表示測(cè)試已通過。紅色的“ x”圖標(biāo)表示測(cè)試失敗。
提示:您可以使用測(cè)試資源管理器從內(nèi)置測(cè)試框架(MSTest)或第三方測(cè)試框架中運(yùn)行單元測(cè)試。您可以將測(cè)試分為幾類,過濾測(cè)試列表,以及創(chuàng)建,保存和運(yùn)行測(cè)試的播放列表。您還可以調(diào)試測(cè)試并分析測(cè)試性能和代碼覆蓋率。
查看現(xiàn)場單元測(cè)試結(jié)果
如果您在Visual Studio 2017或更高版本中使用MSTest,xUnit或NUnit測(cè)試框架,則可以查看單元測(cè)試的實(shí)時(shí)結(jié)果。
注意:實(shí)時(shí)單元測(cè)試僅在企業(yè)版中可用。
通過選擇“ 測(cè)試” >“ 現(xiàn)場單元測(cè)試” >“ 開始”,從“ 測(cè)試”菜單打開現(xiàn)場單元測(cè)試。
在編寫和編輯代碼時(shí),在代碼編輯器窗口中查看測(cè)試結(jié)果。
單擊測(cè)試結(jié)果指示符以查看更多信息,例如覆蓋該方法的測(cè)試名稱。
使用IntelliTest生成單元測(cè)試
運(yùn)行IntelliTest時(shí),您可以查看哪些測(cè)試失敗,并添加任何必要的代碼來修復(fù)它們。您可以選擇將哪些生成的測(cè)試保存到測(cè)試項(xiàng)目中以提供回歸套件。在更改代碼時(shí),請(qǐng)重新運(yùn)行IntelliTest以使生成的測(cè)試與代碼更改保持同步。
提示:IntelliTest僅適用于以.NET Framework為目標(biāo)的托管代碼。
分析代碼覆蓋率
若要確定項(xiàng)目代碼的實(shí)際比例是由編碼測(cè)試(例如單元測(cè)試)測(cè)試的,可以使用Visual Studio的代碼覆蓋功能。為了有效地防范錯(cuò)誤,您的測(cè)試應(yīng)使用大部分代碼。
使用第三方測(cè)試框架
您可以使用第三方測(cè)試框架(例如Boost,Google和NUnit)在Visual Studio中運(yùn)行單元測(cè)試。使用NuGet軟件包管理器為您選擇的框架安裝NuGet軟件包。或者,對(duì)于NUnit和xUnit測(cè)試框架,Visual Studio包括預(yù)配置的測(cè)試項(xiàng)目模板,這些模板包含必要的NuGet包。
要?jiǎng)?chuàng)建使用NUnit的單元測(cè)試:
- 打開包含要測(cè)試的代碼的解決方案。
- 在解決方案資源管理器中右鍵單擊該解決方案,然后選擇添加 > 新建項(xiàng)目。
- 選擇NUnit Test Project項(xiàng)目模板。
單擊下一步,為項(xiàng)目命名,然后單擊創(chuàng)建。該項(xiàng)目模板包括對(duì)NUnit和NUnit3TestAdapter的NuGet引用。
將引用從測(cè)試項(xiàng)目添加到包含要測(cè)試的代碼的項(xiàng)目。
在解決方案資源管理器中右鍵單擊該項(xiàng)目,然后選擇添加 > 參考。(您也可以從“ 引用”或“ 依賴項(xiàng)”節(jié)點(diǎn)的右鍵單擊菜單中添加引用。)
將代碼添加到您的測(cè)試方法。
從測(cè)試資源管理器 ”中運(yùn)行測(cè)試,或右鍵單擊測(cè)試代碼并選擇“運(yùn)行測(cè)試”。
推薦閱讀:
本文內(nèi)容到這里就結(jié)束了,本系列教程持續(xù)更新了,敬請(qǐng)期待~喜歡該產(chǎn)品的朋友可以點(diǎn)擊下載Visual Studio試用版免費(fèi)體驗(yàn)~
想要購買Visual Studio正版授權(quán),或了解更多產(chǎn)品信息請(qǐng)點(diǎn)擊【咨詢?cè)诰€客服】