代码改变世界

体验VS2017的Live Unit Testing

2017-04-10 16:44 by 风中独火, 阅读(4691) 阅读, 推荐(9) 推荐, 收藏, 编辑

相对于传统的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里面,选择不希望包含的类,直接在右键菜单里面排除就行了.

 

轮子科技的.NET Core分享

2016-08-24 13:10 by 风中独火, 阅读(482) 阅读, 推荐(0) 推荐, 收藏, 编辑
摘要:2016年8月11日 应轮子科技一众好友的邀请,在轮子科技给大家做了一个无责任的瞎聊段落,聊聊.NET的Core的一些内容. 恩,演讲者就只有我一个了,讲师是微软的 MVP 杨守斌,就是因为这个,所以被兄弟拉来~~ 最近.NET Core的发布,以及以前各种vNext的话题,大家有些不知所措,正好有 阅读全文

Windows 2008R2 HyperV下安装CentOS6,网卡无痛设置

2012-07-17 19:18 by 风中独火, 阅读(865) 阅读, 推荐(0) 推荐, 收藏, 编辑
摘要:今天下午被同事拉着在2008R2的 HyperV下安装CentOS系统,由于网上的教程都是基于某些旧版本资料的,过程实在坑爹,所以把这个过程记录下来,希望以后的兄弟在安装的时候,能顺利一些. 先说些题外话,目前HyperV的虚拟机已经很不错了.微软已经发布了多个Linux的的驱动,已经很容易进行Linux各个发行版本的安装了.不再局限于Suse. 安装CentOS基本上按照常规安装虚拟机的方式就可以了.不过在设置的时候,需要注意一个部分,默认 CentOS的网卡驱动是无法安装的,所以不能直接上网,所以一般的教程上会让大家在设置的时候使用一个叫”旧版网络适配器” 的网卡: ... 阅读全文

Windows Server 8 初体验 & IIS8

2011-09-16 14:38 by 风中独火, 阅读(3846) 阅读, 推荐(0) 推荐, 收藏, 编辑
摘要:前两天下载Windows 8的时候,就有链接可以下载的Windows Server 8的开发预览版,因为可以通过MSDN订阅下载,就一并下载了下来,因为大部分时候的工作都是围绕服务器展开的,所以就重点体验了一下Windows Server 8 以及IIS 8.以下是整个过程,由于图片比较多,所以就保留比较小的尺寸,有希望看原始图片的兄弟直接点击就好,原始截图的大小的都是足够大的.Windows Server 8下载的时候有两个版本,一个是DVD版本的Windows8的ISO,一个是附带了HyperV的VHD,因为我不知道那个ISO的Windows Server8能否安装HyperV,所以把两个 阅读全文

Windows 8 下利用VS11开发初体验

2011-09-15 10:49 by 风中独火, 阅读(3874) 阅读, 推荐(3) 推荐, 收藏, 编辑
摘要:昨天下载了Windows 8 Developer Preview,在虚拟机和PC上都安装体验了一把. 这个是待机画面,基本上和WP类似,待机一张图片,向上拖动显示登录画面.Windows8与其说是Windows的下一代版本,还不如说是WP系统的电脑加大版本,因此是否有触摸屏就是最大差异了,幸好我的触摸屏可以自动安装驱动,否则就郁闷死了.插上触摸屏,顺利的被识别两点设备,同时在点击的时候,屏幕上也有响应的水圈提示.顺便说一句,QQ、驱动精灵都可以正常安装,但是驱动精灵找到的驱动无一例外的不能安装.所以现在体验Windows8还蛮痛苦的,如果用PC,没有驱动,如果用虚拟机,按不了WIN键,Metr 阅读全文

Windows 8 安装体验

2011-09-14 15:32 by 风中独火, 阅读(3754) 阅读, 推荐(3) 推荐, 收藏, 编辑
摘要:今天早上微博上有了Windows 8开发预览版的消息,到MS的download站点一看,内容还比较丰富了,初了有Windows 8的预览版,还有Developer Tools和Server的版本,不过貌似Server的版本需MSDN订阅才能下载. 开了迅雷,几分钟拖了一个ISO回来,本来想用本机的vmware,但是启动过程中报了一个错误,我也没有具体的看原因,直接扔到服务器,开HyperV,安装一下看看.整个过程还是挺顺利的. 以下是安装过程: 语言没有什么好说的,只能是English 然后是安装 HV虚拟机的速度不错. 同意用户协议就可以继续安装了.整个过程... 阅读全文

关于Redmine的安装

2010-09-10 11:02 by 风中独火, 阅读(332) 阅读, 推荐(0) 推荐, 收藏, 编辑
摘要:最新版的redmine已经发布了.在安装了以后,貌似有一些问题,主要是和i18n组件有关系的,在开始安装rails的时候没有注意,直接安装到了3.0.0,然后卸载以后,又重新安装了2.3.5rails,但是i18n已经被升级到0.4.1了.虽然执行了redmine上issue提供的fixed script,但是还是没有其作用.最后把i18n降级到0.3.7了事. 阅读全文

关于Windows,是不是应该变得"正常"一些

2010-03-09 17:07 by 风中独火, 阅读(308) 阅读, 推荐(0) 推荐, 收藏, 编辑
摘要:我承认,在使用Windows上,我不算是一个正常的人.虽然每天和Widows打交道,但是几乎没有用过Winindows XP这种广受人民群众爱戴的操作系统.回头看看我的操作系统使用轨迹:Windows95,Windows98,Windows2000,Windows 2003,Windows 2008window98之前的时代,其实和大家也没有什么不同,基本上时间都耗费在针对各种细节的处理上.当时记... 阅读全文

关于ROR中MySQL驱动的相关说明

2010-03-01 16:29 by 风中独火, 阅读(197) 阅读, 推荐(0) 推荐, 收藏, 编辑
摘要:Rails在2.2以后就默认不带mysql的驱动.在windows下需要用 gem i mysql来安装,但是会出现一些错误,所以建议采用gem i mysql --no-ri --no-rdoc的方式不安装相关的文档.然后由于和5.1.xx的mysql在驱动上有一些兼容性问题,需要下载这个驱动文件放到ruby\bin目录中解决相关的问题.另外,可以安装Apanta Studio,加载RadRai... 阅读全文

无废话ROR-2

2010-01-22 15:34 by 风中独火, 阅读(158) 阅读, 推荐(0) 推荐, 收藏, 编辑
摘要:A.Block & Iterators1.Block在花括号或者do...end中的代码.约定:单行:花括号;多行:do...endi:关联: 调用方法的时候放在方法结尾,如果方法有参数,block 放到所有参数以后.方法内利用 yield 关键字调用关联的blockex:def methodputs "begin"yieldyieldputs "end"endmethod {puts "... 阅读全文
点击右上角即可分享
微信分享提示