zoukankan      html  css  js  c++  java
  • 体验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里面,选择不希望包含的类,直接在右键菜单里面排除就行了.

  • 相关阅读:
    ASP.NET MVC5+ 路由特性
    老李分享:大数据,数据库,数据仓库之间是什么关系
    老李分享:DBA
    老李提问:开源家族你认识几个
    米尔格伦连锁信实验
    老李分享:六度分隔理论
    三者关系
    老李分享:JDK,JRE,JVM区别与联系
    Linux简介与厂商版本下
    Linux简介与厂商版本上
  • 原文地址:https://www.cnblogs.com/fireinwind/p/6689732.html
Copyright © 2011-2022 走看看