思维的乐趣

Enjoy it
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

项目中用到的一些工具,之一(NUnit)

Posted on 2010-07-11 16:38  szh114  阅读(597)  评论(0编辑  收藏  举报

当前项目将要做daily build,会用到 CruiseControl.NET;还要做UT,用 NUnit 。所以趁周末了解了一下NUnit 的用法。

 

NUnit 其实是一个辅助类库,通过这个类库,可以把写成的测试代码放在它那个框架中完整跑起来。也就是说把一个“单元”拎了出来,加了一个开头,结尾。并且还有一个图形界面(当然这个可以不用)。有时候会利用一些第三方工具,比如 TestDriven.NET 来把NUnit跟VS结合起来。

 

即使是面向对象的编程模式中,UT的基本单元也是函数,而不会以类为单位进行UT。public 的方法还好说,直接调用即可,那private,protected的方法怎么测试呢?当然也是可以解决的,只不过要麻烦些。

 

使用NUnit可以使得你在一个测试代码中,直接调用一个单独的代码块,而不用将整个项目包括进来。你不用关什么 main 入口之类的东西。

 

使用第一步:安装NUnit,当前最新版本是 2.5.5 。直接去官方网站下载一个ZIP包,解压后放在随便任意位置。里面有一个bin文件夹,里面分两种:一种是用于.NET1.1的,一种是用于.NET2.0的,既然没有第三种,说明.NET2.0这个下面的东西亦可适用于.NET3.5,.NET4.0吧应该。

第二步:打开一个VS project然后选一个CS文件做为测试对象,然后新建另一个CS文件,里面写测试代码。要先 using NUnit.Framework 。然后相应的当然要 add reference 。指定前面解压后的文件夹中的那个.NET2.0 下面的 nunit.framework.dll 。接下来用attribute来为代码块做标记,供NUnit识别。写完后编译一下。

第三步:打开.NET2.0那个文件夹下的一个叫nunit.exe的程序,然后File->Open Project 然后定位到由测试目标CS文件编译得到的那个 .exe 文件,打开,然后点右边的Run按钮,就可以开始测了。

 

如果下载并安装了 TestDriven.NET ,它是一个VS PLUG-IN。测试更方便了,直接定位到测试代码页面,然后点右键,就有一个 Run Test 选项,直接点击,就可以了。。。。。。最后会有一个Output 窗口返回你 run 的结果。并且还可以单步跟踪测试代码,很方便。

 

关于NUnit有一本很有名的书是: 《单元测试之道 C#版 -- 使用NUnit》 。

 

另外装了 TestDriven 以后,还会附带一个叫 NCoverage 的工具,可以看到你的测试过程中的代码覆盖率,但它只统计单纯的代码覆盖率,而不是路径覆盖率。这个工具很方便,哪行代码没被跑到,一下子就定位到了。