TestDriven.NET – 快速入门[译文]

介绍

这部分将提供一个快速的入门向导,在vs.NET的任何一个版本上面使用TestDriven。NET

TDD(测试驱动开发)在你写你的代码之前,写单元测试是种是一种习惯。在写代码之前写单元测试,之后使得测试通过可以使得你的更加的理解你的意图和目标。TDD(测试驱动开发)同样鼓励代码的覆盖,不单单可以提高代码的质量,同样允许你重构一些内部的类或者方法,并且快速简单的测试外部对象的接口。

TestDriven.NET是VS插件式的单元测试. 他用原来的名字NUnitAddIn发展了很多年. 它支持多种单元测试框架包括了NUnit, MbUnit 和 MSTS并且和VS.NET的所有版本兼容. 个人版本和商业版都能发挥它的效果。

安装

TestDriven.NET 可以使用admin或者是受限制的用户进行安装. 默认的情况下会对当前的用户进行安装. 由于受限的用户没有对Program Files 文件夹的访问,那么安装就会在当前用户的'Application Data\TestDriven.NET' 文件夹下进行.管理员用户将会把文件安装到 'Program Files\TestDriven.NET' 文件夹下. 默认的文件夹可以在 选择'Custom' 在这个页面 'Choose Setup Type' 下改变

TestDriven.NET 按着不同的功能打包成了 NUnit 和 MbUnit 两个单元测试的Framework. 它同样包含了一个在VSTS中执行的单元测试的适配器。他们将会在 'TestDriven.NET' 子文件夹下面。 (如图一所示)

图一:. TestDriven.NET Setup

执行测试

安装完了TestDriven.NET之后,重启VS, 'Run Test(s)' 命令 (在测试代码的范围之内,点击鼠标) 提供了一个快速的编译测试用例的渠道。它将会默认的执行测试方法.它将会自动的检测到被使用的测试框架并且执行当前的测试用例。测试将会被测试引擎以一个外部进程的方式执行。这个进程将会保持进行着,可以提高后来执行测试的次数。一旦一个测试的进程被捕捉到,一个火箭(Rocket)的图标将会的提示框中出现.

添加引用

如C:\Program Files\TestDriven.NET 3\NUnit\2.5\framework\nunit.framework.dll

using NUnit.Framework;

如果代码编辑选项被选择了,将要执行的测试将会被在光标的位置被终止。当你右键点击在任何一个方法的内部,出现‘RunTest(s)每个单独的测试将会被执行(如图2)。右键点击’Run Test(s)’的时候,所有的测试在一个命名空间中都会被执行。'Run Test(s)'按钮也同样在'Solution Explorer'中被找到.它可以被用来执行在一个解决方案,项目,或者项目item中的测试。

图示 2. Run Test(s) menu item

随机测试

随机测试提供了一个很有用的抛弃命令行程序的替代物。他们无论如何不能替代了真正的单元测试。当然,他们将要打算提供一个方便的本地私有方法在第三个版本中。

任何一个方法都能够通过简单的右键点击’Run Test’作为一个随机测试被执行。他可以是公有的,私有的,静态的instance的方法。Any method can be executed as an ad-hoc test simply by right-clicking inside it and selecting 'Run test(s)'. It can be a 'public', 'private', 'static' or 'instance' method. Instance方法来说,当你使用默认的类的构造器的时候,一个对象将会被建立。当一个测试被执行的时候,Dispose方法也会被实现了IDisposable接口的时候呗调用。

如果一个随即的测试返回一个蚕食,这个参数将会呗扩展到’Test’的输出面板。复杂的对象讲有他们的域和属性被显示出来。可数的对象将会列出来。原始的对象将会转换成字符串并将被显示出来。当使用’Debug.WriteLine’的时候,同样的结果也会被包含进来。

测试输出 & 测试列表

这个 'Test' 输出面板将是一个窗口,在这里会看见所有的测试结果和警告信息(如图三)。与命令行输出和错误信息一起,跟踪和调试信息同样将会被发送,如果所有的测试在一个项目或者解决方案中呗执行,测试输出框将只显示忽略的或者没有通过的测试。

当一个测试失败,测试的名字一起会被异常的信息和跟踪队列被显示出来。如果代码被带着一些调试信息所编译,相同的堆栈跟踪信息将会计算出行数。双击这些部分会是一个驾驭泽这个杂乱代码的很好方法。

图示 3. Output Test Pane

像输出的面板中发送信息一样,错误的测试童谣会加入到任务列表中。如果很多测试失败了,那么这将会建立一个很有用的总结视图(如图4)大体上来讲,进一步的跟踪堆栈,从兴趣上来讲将会是很有趣的。双击测试区域的任务列表是另一种进入代码的方式。

图示4. Task list view

使用 Debugger测试

'Test With'菜单中提供了很多替代内容的可以在测试中执行。选择Debugger'内容可以在vs调试中执行测试. 通过在方法上加入断电并且选择'Test With Debugger' 可以进入一个单元测试。

图示5 Test With Debugger

默认情况的话VS将要建立所有的项目在一个solution中,当他们用debugger执行的时候。在VS2003和2005中有个选项"Only build startup projects and dependencies on Run". 选中之后可以减少的提高编译大的解决方案的时间。在vs2003中,选项是这个'Environment / Projects and Solutions'. Vs05可以在这个'Projects and Solutions / Build and Run'.下面找到。

测试项目 & 解决方案

通过右键点击'Solution Explorer'窗口,选择'Run Test(s)',在project里面的所有测试都会被执行。失败或者是忽略了的测试将会被发送'Test'输出窗口和任务列表中,在一个样式相似的 'Run Test(s)' 命令.如果执行所有的测试在一个项目或者解决方案中, 跟踪,调试和命令行输出是被禁止的,

同样的,所有的测试在一个解决方案中将会在右键点击在’Solution Explorer’窗口中的解决方案并且选择'Run Test(s)'. 对于每一个在解决方案中的项目测试的框架将会被用来建立和测试被执行的时候使用正确的测试。项目不包含任何测试的将会被忽略掉

终止一个运行中的测试

当一个测试正在执行时,菜单中的'Abort Test' 选项将会出现在'Tools' 的菜单中(如图6). 选择一个选项之后将会终止一个正在执行的线程。当测试以这种方式终止的时候,任何一个清除的逻辑将会给一个执行的机会。

图示 6. Abort Test

停止测试进程

有些情况是有必要停止一些测试的进程的。他们当中最公共的就是当一个app的域被建立了之后,但是没有被加载到一个测试当中去。它能够导致任何一个加载到app域中的程序集中被锁定,任何一个随后的编译都会失败。右键点击火箭图标在通知框中并选择’stop’可以循环使用测试的进程(如图7)。一个新的测试进程将会被下次使用’Run Test(s)’命令的时候被执行。

图示 7. Stopping the Test Process

http://www.testdriven.net/quickstart.aspx 原文地址

TestDriven.NET – 快速入门的更多相关文章

  1. 【转】Robot Framework 快速入门

    目录 介绍 概述 安装 运行demo 介绍样例应用程序 测试用例 第一个测试用例 高级别测试用例 数据驱动测试用例 关键词keywords 内置关键词 库关键词 用户定义关键词 变量 定义变量 使用变 ...

  2. Robot Framework 快速入门

    Robot Framework 快速入门 目录 介绍 概述 安装 运行demo 介绍样例应用程序 测试用例 第一个测试用例 高级别测试用例 数据驱动测试用例 关键词keywords 内置关键词 库关键 ...

  3. Robot Framework 快速入门_中文版

    目录 介绍 概述 安装 运行demo 介绍样例应用程序 测试用例 第一个测试用例 高级别测试用例 数据驱动测试用例 关键词keywords 内置关键词 库关键词 用户定义关键词 变量 定义变量 使用变 ...

  4. Web Api 入门实战 (快速入门+工具使用+不依赖IIS)

    平台之大势何人能挡? 带着你的Net飞奔吧!:http://www.cnblogs.com/dunitian/p/4822808.html 屁话我也就不多说了,什么简介的也省了,直接简单概括+demo ...

  5. SignalR快速入门 ~ 仿QQ即时聊天,消息推送,单聊,群聊,多群公聊(基础=》提升)

     SignalR快速入门 ~ 仿QQ即时聊天,消息推送,单聊,群聊,多群公聊(基础=>提升,5个Demo贯彻全篇,感兴趣的玩才是真的学) 官方demo:http://www.asp.net/si ...

  6. 前端开发小白必学技能—非关系数据库又像关系数据库的MongoDB快速入门命令(2)

    今天给大家道个歉,没有及时更新MongoDB快速入门的下篇,最近有点小忙,在此向博友们致歉.下面我将简单地说一下mongdb的一些基本命令以及我们日常开发过程中的一些问题.mongodb可以为我们提供 ...

  7. 【第三篇】ASP.NET MVC快速入门之安全策略(MVC5+EF6)

    目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...

  8. 【番外篇】ASP.NET MVC快速入门之免费jQuery控件库(MVC5+EF6)

    目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...

  9. Mybatis框架 的快速入门

    MyBatis 简介 什么是 MyBatis? MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架.MyBatis 消除 了几乎所有的 JDBC 代码和参数的手工设置以及结果 ...

随机推荐

  1. jquery live hover绑定方法

    $(".select_item span").live({ mouseenter: function() { $(this).addClass("hover") ...

  2. codeforces 340C Tourist Problem(简单数学题)

    题意:固定起点是0,给出一个序列表示n个点,所有点都在一条直线上,其中每个元素代表了从起点到这个点所走的距离.已知路过某个点不算到达这个点,则从起点出发,到达所有点的方案有许多种.求所有方案走的总路程 ...

  3. ByteBuffer用法小结

    在NIO中,数据的读写操作始终是与缓冲区相关联的.读取时信道(SocketChannel)将数据读入缓冲区,写入时首先要将发送的数据按顺序填入缓冲区.缓冲区是定长的,基本上它只是一个列表,它的所有元素 ...

  4. z-index的妙用

    总是在纠结一个问题,当然我是前端初学者.这个问题就是,一个元素放在另一个元素里面,总希望它显示时,但是别撑开元素.这个时候一定要想到z-index. 例如今天写的一个浮动在导航栏下面的一个图片,我用的 ...

  5. hdu 2473 Junk-Mail Filter(并查集_虚节点)2008 Asia Regional Hangzhou

    感觉有些难的题,刚开始就想到了设立虚节点,但是实现总是出错,因为每次设立了虚节点之后,无法将原节点和虚节点分开,导致虚节点根本无意义. 以上纯属废话,可以忽略…… 题意—— 给定n个点(0, 1, 2 ...

  6. 六款最佳Linux教育应用

    导读 对教育行业的用户来说,有好几款专门的Linux发行版是专门面向教育行业的.本文将介绍适合教育领域的几款顶级发行版. 1.Edubuntu 位居榜首的是Edubuntu.顾名思义,Edubuntu ...

  7. Devexpress GridControl z

    http://minmin86121.blog.163.com/blog/static/4968115720144194923578/ 1 AllowNullInput=False; --Devexp ...

  8. Android访问权限大全

    android.permission.ACCESS_CHECKIN_PROPERTIES 允许读写访问”properties”表在checkin数据库中,改值可以修改上传( Allows read/w ...

  9. Redhat修改主机名及网络配置

    通过命令修改主机名 hostname #查看当前主机的主机名 hostname NEWHOSTNAME #临时修改当前主机名 通过配置文件修改主机名 vi /etc/sysconfig/network ...

  10. div模拟的下拉框特效jquery

    从网上找来的,感觉不错就拿来分享下 <style type="text/css"> body, ul, li { margin: 0; padding: 0; font ...