Taking the MSTest Framework forward with “MSTest V2”[译]

??最近,我们宣布MSTest Framework支持.NET Core RC2/ASP.NET Core RC2,最终,我们把加入这一新特性的MSTest Framework更名为“MSTest V2”,在发布版本中可以看到关于改进MSTest Framework的大致方向。

了解一些上下文

??在Visual Studio中,我们有一套开放的测试平台,通过不同的适配器,支持使用不同的测试框架写测试用例,开发者可以根据自己的意愿自由选择,就像一个测试框架和不同适配器组成的测试生态系统。在这个生态系统中,MSTest扮演着特殊的角色,它经常被用来写纯粹的单元测试。然而,这么些年来,为了给多个平台提供支持,MSTest已变得有些冗杂。为了给桌面程序,应用商店程序,以及UWP程序提供支持,开发者需要了解这之间的细微差别。比如,针对桌面程序的命名空间是Microsoft.VisualStudio.TestTools.UnitTesting,而UWP的命名空间是另外的Microsoft.VisualStudio.TestPlatform.UnitTestFramework。

MSTest V2

??在MSTest V2上,我们投入了比较大的精力,它是MSTest的新版本,带来了如下这些新功能:

  1. 提供全平台支持-桌面程序,商店程序,UWP,ASP.NET Core 1.0,.NET Core 1.0
  2. 对所有的基于MSTest的测试工程提供数据行支持
  3. 允许将TestCategory特性应用到类级别和程序集级别
  4. 统一的单一终端扩展机制
  5. 通过nuget分发

??在申明中有关于如何在.NET Core中使用MSTest V2。如果是桌面程序或UWP程序,可以参考如下步骤:

  • 首先安装“MSTest V2”类库

  • 接着安装适配器(此适配器和用于.NET Core的适配器不通用):

  • 然后在代码中引用命名空间(此命名空间处理了对老版本的兼容性问题):
    using Microsoft.VisualStudio.TestTools.UnitTesting

OK,这样我们就配置好了,接下来就可以写测试用例了。

我们的计划

??接下来我们将会有如下一些动作:

  1. 在Visual Studio 2015 Release 版本中,我们会更新一些测试工程模版和测试生成向导以增加对MSTest V2的支持
  2. 所有的bug修复和功能迭代都会围绕MSTest V2
  3. 我们会继续提供早期版本的MSTest二进制文件,但那仅仅是为了兼容性
  4. 我们会文档化扩展机制
  5. 我们会从社区收集反馈

期待你的参与

  1. 如果你有使用MSTest的测试工程,强烈建议升级到MSTest V2,并开始使用它
  2. 如果你有写一些MSTest的扩展,建议你在MSTest V2中继续使用
  3. 如果你有新的测试工作,建议你使用MSTest V2

反馈

(此处省略n个字)

总结

??作为一个测试平台,我们一直希望可以作为你评估多个测试平台后的最终选择。这次的新版本有望实现我们的目标。

强烈建议阅读英文原文

date: 2017-11-06 22:15:45

原文地址:https://www.cnblogs.com/erdao/p/8419711.html

时间: 2024-11-10 15:33:43

Taking the MSTest Framework forward with “MSTest V2”[译]的相关文章

Entity Framework底层操作封装V2版本(1)

因为同志们一直给我提建议说,以前发的版本有问题.所以经过了我这一年多的使用和扩展,现在方法基本稳定了.现在贴出来给大家使用: 首先上场的是数据库操作层: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Linq.Expressions; using System.Data.Objects.DataClasses; using System.Refl

Entity Framework底层操作封装V2版本(2)

这个类是真正的数据库操作类,上面的那个类只是调用了这个封装类的方法进行的操作 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Linq.Expressions; using System.Data.Entity; using System.Data.Linq; using System.Data.Objects; using System.Refl

Entity Framework底层操作封装V2版本(3)

现在是附加的,组合查询需要的扩展类.大家知道lanmda表达式的组合条件比较麻烦,所以就加了一样一个类,方便进行组合查询: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Linq.Expressions; namespace JFrame.AccessCommon { public static class PredicateExtensions

Entity Framework底层操作封装V2版本(4)

这个版本里面,因为涉及到了多库的操作,原有的系统方法不能做到这样的事情了.所以这里有了一点区别 这个类的主要用作就是,连接字符串的作用,默认是指向默认配置里面的,但是你可以指向其他的连接 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Configuration; namespace JFrame.Dal { public class DataBa

Entity Framework底层操作封装V2版本(5)

这个框架到现在最大的变化马上就要出现了,哪就是对缓存的使用.因为系统经常要去读取数据库数据,但是大家知道,数据库的处理能力是有限的,所以对于一些数据量不大,但是又 需要经常去读取的功能来说,更好的方法就是使用缓存. 上面4的方法是不适用缓存的 using System; using System.Collections.Generic; using System.Linq; using System.Text; using JFrame.AccessCommon; using System.Da

Announcing MSTest Framework support for .NET Core RC2 / ASP.NET Core RC2[译]

??.NET Core RC2 和 ASP.NET Core RC2 已在几周之前发布,它包含了.NET CLI的介绍,对.NET Core SDK(以前叫 DNX)的改动,ASP.NET 5到ASP.NET Core的进化等,更多特性可以参考.NET 团队博客和.NET WEB开发团队博客. ??而现在,我们很兴奋的宣布,MSTest类库也支持这个发布版本啦!相关类库和依赖包都可以在NuGet上获取.这次是预发布版本,我们期望收到你的反馈以便带来更完善的正式版本. ??在这篇文章中,我会向你展

Entity Framework底层操作封装V2版本号(2)

这个类是真正的数据库操作类.上面的那个类仅仅是调用了这个封装类的方法进行的操作 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Linq.Expressions; using System.Data.Entity; using System.Data.Linq; using System.Data.Objects; using System.Ref

Entity Framework底层操作封装V2版本号(1)

由于同志们一直给我提建议说.曾经发的版本号有问题.所以经过了我这一年多的使用和扩展,如今方法基本稳定了. 如今贴出来给大家使用: 首先上场的是数据库操作层: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Linq.Expressions; using System.Data.Objects.DataClasses; using System.Re

MSTest不支持参数化测试的解决方案

之前的项目中做单元测试一直用的是NUnit,这次做新项目,负责人要求统一用MsTest,理由是MsTest是Visual Studio内置的.用就用吧,我没什么意见.不过用了两天,我就发现一个大问题:MsTest并不支持参数化测试(也有叫行测试的). 什么是参数化测试?简单的说,就是同样的逻辑,根据输入参数不同给出不同的结果.因为只是参数不同,所以并不希望把测试写多遍,但是又希望对每个参数的测试成为一个独立的测试用例.举例说,假定我有一个数学计算的方法是把数字*2,我希望证明这个方法对于正数.负