单元测试入门

https://docs.microsoft.com/zh-cn/visualstudio/test/getting-started-with-unit-testing?view=vs-2019

使用 Visual Studio 定义和运行单元测试,使代码保持正常运行、确保代码覆盖率并在客户之前找到错误和缺陷。 经常运行单元测试,确保代码正常运行。

创建单元测试

本节从较高层面介绍了如何创建单元测试项目。

  1. 在 Visual Studio 中,打开要测试的项目。

    为了演示示例单元测试,本文测试了简单的“Hello World”项目。 此类项目的示例代码如下所示:

    C#复制

    public class Program
    {public static void Main(){Console.WriteLine("Hello World!");}
    }
    
  2. 在“解决方案资源管理器”中,选择解决方案节点 。 然后,在顶部菜单栏中,选择“文件” > “添加” > “新项目” 。

  3. 在新项目对话框中,找到并选择要使用的测试框架的单元测试项目模板。

    Visual Studio 2019 中的单元测试项目模板

    单击“下一步”,选择测试项目的名称,然后单击“创建” 。

    项目将添加到解决方案中。

    解决方案资源管理器中的单元测试项目

  4. 在单元测试项目中,右键单击“引用”或“依赖项”,然后选择“添加引用”,添加对要测试的项目的引用 。

  5. 选择包含待测试代码的项目,单击“确定” 。

    在 Visual Studio 中添加项目引用

  6. 向单元测试方法添加代码。

    在 Visual Studio 中向单元测试方法添加代码

 提示

有关创建单元测试的更详细演练,请参阅创建并运行托管代码的单元测试。

运行单元测试

  1. 在顶部菜单栏中选择“测试” > “Windows” > “测试资源管理器”,打开测试资源管理器 。

  2. 单击“全部运行”,运行单元测试 。

    在测试资源管理器中运行单元测试

    测试完成后,绿色复选标记表示测试通过。 红色“x”图标表示测试失败。

    在测试资源管理器中查看单元测试结果

 提示

可以使用测试资源管理器从内置测试框架 (MSTest) 或第三方测试框架运行单元测试。 可以将测试分组为不同类别、筛选测试列表,以及创建、保存和运行测试播放列表。 你还可以调试测试并分析测试性能和代码覆盖率。

查看实时单元测试结果

如果在 Visual Studio 2017 或更高版本中使用 MSTest、xUnit 或 NUnit 测试框架,可查看单元测试的实时结果。

 备注

只有企业版中提供 Live Unit Testing 功能。

  1. 选择“测试” > “Live Unit Testing” > “启动”,从“测试”菜单启用 Live Unit Testing 。

    在 Visual Studio 2019 中启用 Live Unit Testing

  2. 编写和编辑代码时,请在代码编辑器窗口中查看测试的结果。

    查看测试的结果

  3. 单击测试结果指示器查看详细信息,例如涵盖该方法的测试的名称。

    选择测试结果指示符

有关 Live Unit Testing 的详细信息,请参阅 Live Unit Testing。

使用 IntelliTest 生成单元测试

运行 IntelliTest 时,可以看到哪些测试会失败,并可添加任何必要的代码来修复它们。 你可选择要保存到测试项目中的已生成测试,以提供回归套件。 当你更改代码时,重新运行 IntelliTest,以使生成的测试与你的代码更改同步。 若要了解如何操作,请参阅使用 IntelliTest 为你的代码生成单元测试。

 提示

IntelliTest 仅适用于面向 .NET Framework 的托管代码。

使用 IntelliTest 生成单元测试

分析代码覆盖率

若要确定正在由编码的测试(例如单元测试)实际进行测试的项目代码的比例,则可以使用 Visual Studio 的代码覆盖率功能。 若要有效防止 Bug,测试应作用于你的大部分代码。 若要了解如何操作,请参阅使用代码覆盖率确定所测试的代码量。

使用第三方测试框架

通过使用第三方测试框架(如 Boost、Google、和 NUnit),可以在 Visual Studio 中运行单元测试。 使用 NuGet 包管理器为所选框架安装 NuGet 包 。 或者,对于 NUnit 和 xUnit 测试框架,Visual Studio 包含预配置的测试项目模板,其中包含必要的 NuGet 包。

创建使用 NUnit 的单元测试:

  1. 打开包含待测试代码的解决方案。

  2. 右键单击“解决方案资源管理器”中的解决方案,然后选择“添加” > “新建项目” 。

  3. 选择“NUnit 测试项目”项目模板 。

    Visual Studio 2019 中的 NUnit 测试项目模板

    单击“下一步”,为项目命名,然后单击“创建” 。

    项目模板包括对 NUnit 和 NUnit3TestAdapter 的 NuGet 引用。

    解决方案资源管理器中的 NUnit NuGet 依赖项

  4. 将测试项目中的引用添加到包含待测试代码的项目中。

    右键单击“解决方案资源管理器”中的项目,然后选择“添加” > “引用” 。 (还可以从“引用” 或“依赖项” 节点右键单击菜单来添加一个引用。)

  5. 将代码添加到测试方法。

    将代码添加到单元测试代码文件

  6. 从测试资源管理器运行测试,或右键单击测试代码并选择“运行测试” 。

请参阅

  • 演练:创建并运行托管代码的单元测试
  • 创建单元测试命令
  • 使用 IntelliTest 生成测试
  • 使用测试资源管理器运行测试
  • 分析代码覆盖率

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/438857.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java中乐观锁_Java中乐观锁与悲观锁的实现

锁(locking)业务逻辑的实现过程中,往往需要保证数据访问的排他性。如在金融系统的日终结算处理中,我们希望针对某个cut-off时间点的数据进行处理,而不希望在结算进行过程中(可能是几秒种,也可能是几个小时),数据再发生…

.net开源框架简介和通用技术选型建议

.net体系 .net core .net 类库 asp.net mvc asp.net webapi asp.net core EF 跨平台和运行时解决方案(解决方案) Katana:微软基于OWIN规范实现的非IIS寄宿ASP.NET和MVC等。 MONO.NET:跨平台的.NET运行环境,让.NE…

JAVA 2048源码_java实现2048游戏源代码

本文实例为大家分享了java实现2048游戏源代码,供大家参考,具体内容如下一.主要功能:1、游戏初始化:新建游戏44的16宫格画布,随机格子上生成2或者4两个数字2、格子的移动:先判断能否移动,移动后判…

.Net开源的跨平台爬虫框架 DotnetSpider

项目详细介绍 DotnetSpider是开源的.NET跨平台数据采集爬虫框架。需要 Scheduler,Downloader ,Processor,Pipeline 四部分。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39…

开源干货!.NET Core + Vue.js通用动态权限(RBAC)管理系统框架[DncZeus]开源

DncZeus 前言 关于 DncZeus DncZeus Dnc Zeus "Dnc"--.Net Core 的缩写; "Zeus"--中文译为宙斯,是古希腊神话中的众神之王,奥林匹斯十二主神之首,统治宇宙万物的至高无上的主神(在古希腊神…

浏览器使用java_java如何调用本地的浏览器

1.调用本地的浏览器 import java.io.IOException;import java.net.MalformedURLException;import java.net.URL;public class UseBrowser {public static void main(String[] args) {URL url null;try {url new URL("http://www.baidu.com");} catch (MalformedURL…

java input函数怎么用_Java函数习惯用法详解

在Java编程中,有些知识 并不能仅通过语言规范或者标准API文档就能学到的。在本文中,我会尽量收集一些最常用的习惯用法,特别是很难猜到的用法。我把本文的所有代码都放在公共场所里。你可以根据自己的喜好去复制和修改任意的代码片段&#xf…

十大开源的.NET用户界面框架 让GUI设计不再犯难

选择一款合适的GUI框架是.NET开发中比较重要但又很棘手的问题,因为用户界面相当于一款应用的"门面",直接面向用户。好的UI更能吸引用户,有时甚至成为决定一款应用成败的关键。下面小编整理出十大应用最广泛.NET开源用户界面框架&am…

mysql一对一级联_MySQL 表的一对一、一对多、多对多问题

将实体与实体的关系,反应到最终数据库表的设计上,将关系分为三种:一对一,一对多(多对一)和多对多,所有的关系都是表与表之间的关系;一对一一对一:一张表的一条记录只能与另外一条记录进行对应,反…

.Net开源框架列表

API 框架 NancyFx:轻量、用于构建 HTTP 基础服务的非正式(low-ceremony)框架,基于.Net 及 Mono 平台。官网ASP.NET WebAPI:快捷创建 HTTP 服务的框架,可以广泛用于多种不同的客户端,包括浏览器…

java的基础类型和字节大小_java的基础类型和字节大小

学习c语言的时候,这些个东西起码还是很明确的,因为上课的时候,老师经常问,现在时间久了,见的语言多了,也就有点乱了,也没怎么在意过。(武藏) 既然你诚心诚意的发问了,(小次郎) 我…

python flv转mp4_ffmpeg将多个flv文件合成为mp4(python版)

需求直播生成的flv片段需要做个归档,把指定的文件夹中的flv合并成一个mp4,简单的转码合并操作直接用命令行调用来实现。注意事项flv文件直接合并生成mp4的话只有第一个flv的内容才能播放,需要先转换成ts再合成mp4使用的第三方库ffmpy&#xf…

多租户技术

本词条由“科普中国”科学百科词条编写与应用工作项目 审核 。 多租户技术(英语:multi-tenancy technology)或称多重租赁技术,是一种软件架构技术,它是在探讨与实现如何于多用户的环境下共用相同的系统或程序组件&…

使用开源工具ELK可视化 Azure NSG日志

国内的Azure最近上线了网络观察程序服务,可以帮助用户监控和分析VNET虚拟网络。其中一个很重要的功能就是可以记录NSG的安全访问日志了。但是如果用户设置了NSG流日志,并下载日志想要分析一下的话,会发现日志其实并不是很友好,NSG…

pythoncad二次开发视频_AutoCAD ObjectARX 二次开发(2020版)--4,使用ARX向导创建CAD二次开发项目(编程框架)--...

手动创建ObjectARX应用程序非常麻烦,在此步骤中,将介绍ObjectARX向导。在这里,我们将使用ObjectARX向导创建我们的ObjectARX应用程序。本节的程序的需求是,接收CAD用户的输入。首先,打开VS2017,新建项目在左…

Azure Data Explorer(Kusto)学习笔记

Azure Data Explorer 指南 Azure在2018年推出了Data Explorer产品,提供实时海量流数据的分析服务(非流计算),面向应用、网站、移动端等设备。 用户可以查询,并交互式地对结果进行分析,以达到提升产品、增…

python将一列数据转换成向量_python读取csv和txt数据转换成向量的实例

最近写程序需要从文件中读取数据,并把读取的数据转换成向量。查阅资料之后找到了读取csv文件和txt文件两种方式,下面结合自己的实验过程,做简要记录,供大家参考:1、读取csv文件的数据import csvfiltpath "data_t…

Iaas,Paas,Saas三者的区别联系是什么?

本词条由“科普中国”科学百科词条编写与应用工作项目 审核 。 多租户技术(英语:multi-tenancy technology)或称多重租赁技术,是一种软件架构技术,它是在探讨与实现如何于多用户的环境下共用相同的系统或程序组件&…

.NET开源的背后:是无奈,还是顺应潮流?

摘要:微软.NET的开源,让许多开发人员欣喜若狂,同时也有许多人好奇其背后的故事,过去视开源为癌症的微软为什么会突然有这一举措,是出于无奈,还是顺应潮流,而这其中的种种或许可以用文中的六个观…

r.java没有生成_R.java文件没有生成

01R.java是ADT工具产生的新创建Android工程R.java文件并没有产生,必须先运行Bulid或RUN(运行)程序,才会产生。02 R.java文件丢失,必要急,修复很简单方法:右击你的工程(项目)——>Android Tools——>Fix P…