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. UVa 10969 (圆与圆之间的覆盖问题) Sweet Dream

    题意: 有n个按先后顺序放置的不同大小不同位置的圆,求所有可见圆弧的长度. 分析: 这道题应该是大白书上例题 LA 2572 (求可见圆盘的数量) Kanazawa 的加强版,整体框架都差不多. 对于 ...

  2. asp.net实现GZip压缩和GZip解压

    最近在开发一个网站doc.115sou.com,使用到了GZip压缩技术,经过多次搜索找到asp.net中用GZip对数据压缩和解压缩非常方便,当我第一次拿到这个类的时候却感觉很迷茫,无从下手.主要是 ...

  3. 图表框架HelloCharts(3)饼状图

    1 效果图 2 xml文件 activity_pie_chart.xml <FrameLayout xmlns:android="http://schemas.android.com/ ...

  4. nginx反向代理的简单配置

    有两台机器A和B. A上边是nginx,B上边是tomcat. 现在要通过A的反向代理功能,通过A的nginx访问到B的tomcat. 首先tomcat已经配置好,并且正确启动,可访问.       ...

  5. LeetCode Contains Duplicate (判断重复元素)

    题意: 如果所给序列的元素不是唯一的,则返回true,否则false. 思路: 哈希map解决. class Solution { public: bool containsDuplicate(vec ...

  6. FFmpeg介绍及参数详细说明

    FFmpeg是一个开源免费跨平台的视频和音频流方案,属于自由软件,采用LGPL或GPL许可证(依据你选择的组件).它提供了录制.转换以及流化音视频的完整解决方案.它包含了非常先进的音频/视频编解码库l ...

  7. git pull冲突解决

    场景:用户UserA修改了文件File1,用户UserB也修改了文件File1并成功merge到了服务器上,而UserA和UserB改动了同一个代码块,当UserA拉取代码时git无法merge此改动 ...

  8. Python easy_install

    系统中有高版本的Python, 直接pip3 install ipcalc安装,都是装到高版本的Python 系统默认的Python是2.7.6,现在想装到默认版本中,可以使用easy_install ...

  9. 【原创】利用Windows系统日志统计员工每天上下班考勤时间

    利用Windows系统日志统计员工每天上下班考勤时间(命令行参数为统计月份): using System; using System.Collections.Generic; using System ...

  10. hadoop2.0中无法启动datanode的问题

    问题描述:在启动datanode进程时,能成功的启动:但用jps查看进程时,发现进程不存在,下面是在datanode日记文件的错误信息 如下图的截屏所示: 主要原因:发生错误的原因:由于把data放在 ...