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正版授权,或了解更多产品信息请点击