看到一篇好文章《基于VS2012 Fakes框架的TDD实战——接口模拟》,顺便学习下VS2012的单元测试,做了以下笔记和大家分享。VS 2012 我想最大的改变就是 可以支持各种不同的 Unit Test Framework 以及 内建 Fake 机制,以前若是想要在 VS 中整合接口和 Team Build 就变成一定要用 MS Test Framework
现在您可以在您的项目当中自行选择 NUnit 或是 xUnit 之类的套件.
而且这次的测试资源管理器也完全以”信息为主”,可以在一个地方呈现最重要的信息而不需要再一直切换界面。
测试清单 以及 执行 单元测试的时间 ,这对于我们来说已经是很足够了,可以看到 全新增加了测试资源管理器全部执行后会“自动查找”出符合要测试的项目,并且默认以“错误”为主的清单来呈现 ( 因为有错误才需要我们来看,没有错的话就不用理它们啦 ),点选项目后也不会再像以前会另外开新的页面,现在则是直接在下面的列出信息,以前只会跟你讲说 单元测试用例那一行挂掉,现在就直接跟您说是那一行挂掉。看到这里是不是很贴心?点两下就搞定!不用再自已进去找了。
当我们习惯了单元测试之后,你不由自主地就会执行一下看看有没有错误,但 单元测试增加到上百个的时候,你就不会想要每次改一个小地方都全部重新测试,因为这实在是没有什么太大的意义,而且也是浪费自已的时间。在 VS 2010 中就只会帮你勾选测试失败的清单,但说真的,毕竟不太简单了,这次变更成几个选项,可以让我们依不同的情况来选择适合的测试清单。而且这有个非常大的好处就是可以让我们 聚焦在已知的错误中。另外,分析程序代码涵盖范围的机制也有改变了,变成要执行分析后才会真正开始做,重点是也不需去做任何的配置 ( VS 2010 要先配置好才会正常运行),如果想要每次编译后就自动执行单元测试,那么请开启“Run Tests After Build”这个选项。
接下来只要编译完成后就会自动执行单元测试。
VS 2012 内建了 Fake 机制 ,简单来说就是可以用假的数据,替换掉 某一个 Method 回传的值, 而且VS 2012 除了自定义的 Class 外,也可以产生 .NET Framework 的 Fake Class 。详细内容请参考《基于VS2012 Fakes框架的TDD实战——接口模拟》。
在 VS 2010 以前都会分别产生负责测试的 vsmdi 和 测试相关设定的 testRunConfig 文件,大家都知道 VS 2012 这次就算升级后,也是可以让 VS 2010 (SP1)同时编辑的。虽然这两个文件在这次 VS 2012 中就用不到了,但如果您想要让 VS 2010(sp1) 也可以编辑的话,这两个文件就请保留着,就可以让 VS 2010 项目中持续地做单元测试,但是您用了 NUnit 、xUnit 这种非 MS Unit Test Framework 的话,在 VS 2010 是不能直接用的哦。
在 Test Result 中也和以前不太一样了,除了原本的 Test Result 目录外,还增加了 UTE Test DB。