体验VS2017的Live Unit Testing

相对于传统的Unit Test,VS2017 带来了一个新的功能,叫Live Unit Testing,从字面意思理解就是实时单元测试,在实际的使用中,这个功能就是可以在编写代码的时候进行实时的background的单元测试.

在体验之前,有几点注意事项是需要了解的:

1.目前 live unit tesing仅仅支持 C#和VB的传统.net版本,不支持.net core,当然,我觉得也不支持其他的语言,这点是暂时让我遗憾的,因为从体验的结果来看,如果能支持其他的语言,无疑是非常非常吸引人的功能.

2.可以和第三方的测试框架结合,不仅仅是MSTEST,我就是用的NUnit,当然XUnit也没有问题.

要想启用测试,本身来讲是非常简单的.

只需要在Test 菜单 启用Live Unit Testing就可以了.

 

如果你使用NUnit的话,需要安装Nunit test adpater Install-Package NUnite3TestAdapter

测试的过程就比较简单了.

我们可以按照我们的需要,写一些需要测试的内容,然后创建TestMethod,就可以进行测试,与传统测试不同的是,所有的单元测试,不需要手工触发,可以自动进行.

public class Item
   {
       public string Name { get; set; }
       public decimal Price { get; set; }
   }

 

public class ShoppingCart
   {
       public int UserID { get; set; }
       public string UserName { get; set; }

public DateTime LastUpdated { get; set; }

public List<Item> Items { get; set; }

public decimal Total { get { return Items.Sum(i => i.Price); } }

}

 

然后我们可以创建一个测试的类,并编写测试的方法.

在我们的编写过程中,启动了Live Unit Testing的VS2017 会帮我们进行持续的测试,并根据测试的结果,标注在每一行中.

同样,针对已经完成了单元测试的代码,也会进行实时的标记,如下图所示:

 

 这样,我们可以很清楚的看到整个代码的测试覆盖情况.

而且在整个编码过程中,我们完全不需要停止测试的过程,只要我们进行编码,随时都会进行测试,并显示代码测试的覆盖情况,而且会立即显示代码的错误.

例如:

我们保存以后,马上就有提示,然后紧接着会进行单元测试.然后实时的显示测试失败的情况,如下图:

而且这个错误会同时显示在我们的TestMethod和我们的代码编写中,可以想见,这样的方式,将会极大的提升我们编写代码的效率.

但是这样也带来了一个问题,在我们写代码的过程中,可能不希望所有的单元测试都是这样实时的进行的,这个时候,我们可以简单的进行单个测试文件的排除:

 

只要在Explorer里面,选择不希望包含的类,直接在右键菜单里面排除就行了.

原文地址:http://www.cnblogs.com/fireinwind/p/6689732.html


.NET社区新闻,深度好文,微信中搜索dotNET跨平台或扫描二维码关注

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

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

相关文章

sqlserver复习总结

--已知有一个表&#xff1a;该表的字段有&#xff1a;id,name,date,gradeid,email --1.插入一条记录&#xff1a; insert into table_name values (1,刘世豪,2017-10-21,1,666qq.com) --2.修改 update table_name set name 张云飞 where id 1 --3.删除 delete from table_name…

Map的两种遍历方法

COPY/*** HashMap的使用* 存储结构&#xff1a;哈希表&#xff08;数组链表红黑树&#xff09;*/public class Demo2 {public static void main(String[] args) {HashMap<Student, String> hashMapnew HashMap<Student, String>();Student s1new Student("tan…

服务器windows系统如何登陆,如何登陆windows云服务器

如何登陆windows云服务器 内容精选换一换远程登录的账号和密码是多少&#xff1f;登录云服务器的用户名和密码&#xff1a;Windows操作系统用户名&#xff1a;AdministratorLinux操作系统用户名&#xff1a;root登录云服务器的用户名和密码&#xff1a;Windows操作系统用户名&a…

Java集合面试问题

转载自 Java集合面试问题 Java集合框架为Java编程语言的基础&#xff0c;也是Java面试中很重要的一个知识点。在本文中&#xff0c;列出了一些关于Java集合的重要问题和答案。 1.Java集合框架是什么&#xff1f;说出一些集合框架的优点&#xff1f; 每种编程语言中都有集合…

深入.net平台的分层开发

一、搭建三层的步骤&#xff1a; 1.创建一个窗体应用程序&#xff1a;新建–》新建项目–》选择窗体应用程序–》给项目命名–》选择存放的路径。 2.创建数据访问层&#xff08;DLL层&#xff09;&#xff1a;文件–》添加–》新建项目–》选择类库–》起个名字&#xff08;项目…

2018蓝桥杯省赛---java---B---8(日志统计)

题目描述 小明维护着一个程序员论坛。现在他收集了一份"点赞"日志&#xff0c;日志共有N行。其中每一行的格式是&#xff1a; ts id 表示在ts时刻编号id的帖子收到一个"赞"。 现在小明想统计有哪些帖子曾经是"热帖"。如果一个帖子曾在任意一个长…

法兰克服务器电源维修,发那科FANUC系统控制电源简介

摘要发那科系统电源 推荐的外部24VDC电源(稳压电源)(电源电压必须满足UL1950的要求)。该电源不能与机床强电柜内I/O点或伺服电动机的抱闸共用。如果在控制单元的电源关掉后断开电池&#xff0c;则控制单元中存储的绝对脉冲编码器的当前位置&#xff0c;系统参数&#xff0c;程序…

这些代码优化的方法,你都用过吗

转载自 这些代码优化的方法&#xff0c;你都用过吗 代码优化的最重要的作用应该是&#xff1a; 避免未知的错误 在代码上线运行的过程中&#xff0c;往往会出现很多我们意想不到的错误&#xff0c;因为线上环境和开发环境是非常不同的&#xff0c;错误定位到最后往往是一个…

myeclipse如何换一个漂亮的主题

熟悉hbuilder的童鞋们都知道&#xff0c;在开发的时候主题有好几种可以随意切换&#xff0c;但是在开发java时用到的myeclipse的主题是否可以随意切换呢&#xff1f;如果可以在哪里切换&#xff0c;今天我们就来看看如何修改myeclipse的主题&#xff01; 一、首先我们要切换个漂…

基于C#.NET的高端智能化网络爬虫

前两天朋友发给我了一篇文章&#xff0c;是携程网反爬虫组的技术经理写的&#xff0c;大概讲的是如何用他的超高智商通过&#xff08;挑衅、怜悯、嘲讽、猥琐&#xff09;的方式来完美碾压爬虫开发者。今天我就先带大家开发一个最简单低端的爬虫&#xff0c;突破携程网超高智商…

2019蓝桥杯省赛---java---B---7(外卖店优先级)

题目描述 时间限制: 1.0s 内存限制: 512.0MB 本题总分&#xff1a;20 分 【问题描述】 “饱了么”外卖系统中维护着 N 家外卖店&#xff0c;编号 1 ∼ N。每家外卖店都有 一个优先级&#xff0c;初始时 (0 时刻) 优先级都为 0。 每经过 1 个时间单位&#xff0c;如果外卖店没有…

left join 和 left outer join 的区别

通俗的讲&#xff1a; A left join B 的连接的记录数与A表的记录数同 A right join B 的连接的记录数与B表的记录数同 A left join B 等价B right join A table A: Field_K, Field_A 1 a 3 b 4 c table B: Field_K, Field_B 1 x 2 y 4 z select a.Field_K, a.…

服务器母鸡系统,母鸡云服务器

母鸡云服务器 内容精选换一换云耀云服务器创建成功后&#xff0c;您可以根据需求&#xff0c;修改云服务器的名称。系统支持批量修改多台云耀云服务器的名称&#xff0c;修改完成后&#xff0c;这些云耀云服务器的名称相同。登录控制台。单击管理控制台左上角的&#xff0c;选择…

在ASP.NET Core中使用Apworks开发数据服务:对HAL的支持

HAL&#xff0c;全称为Hypertext Application Language&#xff0c;它是一种简单的数据格式&#xff0c;它能以一种简单、统一的形式&#xff0c;在API中引入超链接特性&#xff0c;使得API的可发现性&#xff08;discoverable&#xff09;更强&#xff0c;并具有自描述的特点。…

.net三层架构开发步骤

City城市表&#xff0c;id ,name,password,address,phone; 1.新建一个windows窗体应用程序&#xff0c;CitySys 2.文件–》添加–》新建项目–》类库&#xff08;CitySysModel&#xff09;–》重命名class1.cs的类&#xff08;CityModel&#xff09;。 3.根据数据表里面的字段&…

JAVA多线程和并发面试问题

转载自 JAVA多线程和并发面试问题 Java多线程面试问题 1.进程和线程之间有什么不同&#xff1f; 一个进程是一个独立(self contained)的运行环境&#xff0c;它可以被看作一个程序或者一个应用。而线程是在进程中执行的一个任务。Java运行环境是一个包含了不同的类和程序的…

C#各个版本中的新增特性详解

序言 自从2000年初期发布以来&#xff0c;c#编程语言不断的得到改进&#xff0c;使我们能够更加清晰的编写代码&#xff0c;也更加容易维护我们的代码&#xff0c;增强的功能已经从1.0搞到啦7.0甚至7.1&#xff0c;每一次改过都伴随着.NET Framework库的相应支持&#xff0c;也…

微内核操作系统能做服务器系统吗,科普:微内核操作系统现状

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼微内核结构是1980年代产生出来的较新的内核结构&#xff0c;强调结构性部件与功能性部件的分离。20世纪末&#xff0c;基于微内核结构&#xff0c;理论界中又发展出了超微内核与外内核等多种结构。尽管自1980年代起&#xff0c;大部…

2019蓝桥杯省赛---java---A---8(修改数组)

题目描述 思路分析 不是每次1了&#xff0c;而是直接加相同数字出现过的次数&#xff0c;比如有3个1&#xff0c;第二个1就是1&#xff0c;第三个直接2&#xff0c;而不是两次1&#xff0c;而且每次都记录每次的新值出现的次数&#xff0c;这样循环到新数未出现过为止 代码实…

HTML、sqlserver数据库和java前七章节的复习(一)

1.HTML的基本结构 <!doctype> <html><head><title></title></head><body></body> </html>2.有序列表 <ol><li></li></ol>3.无序列表 <ul><li></li></ul>4.写一个边…