您的位置:首页 > 其它

方便你的测试(TestDriven.NET)

2006-07-20 14:54 260 查看
测试驱动现在应该是比较普遍的概念了,我们一般都会用Nunit进行测试。但这样测试有两个不方便的地方,一是我们写好测试代码后要另开一个程序,也就是Nunit-gui.exe程序加载编译过后的测试代码,然后点击“Run”进行测试;二是我们即使在Nunit中测试通过了,也只是看到一个非常环保的绿条,知道我们的测试是通过了,但这并不能使我们在代码层上有更多了解,比如,你难道不想知道你的代码的使用率来改进你的程序?
针对以上两个问题,我首先向大家介绍TestDriven.NET。你可以到http://www.testdriven.net/default.aspx上查看它的详细信息,你也可以到http://www.testdriven.net/download.aspx下载它,好像只有个人版是能免费下载的。它能将Nunit集成到Visual Studio.NET开发环境中,它也能将NCover(接下来将介绍)和NCoverExplorer(下面也会介绍)。按照网上的说法它支持各种版本的Visual Studio.NET,所以你不必担心兼容性冲突。当你安装了TestDriven.NET后,你会在开发环境的菜单里看到这个集成,如下图(这里显示的就是已安装了NCover的):

Usage: NCover /c [/a ]

/c Command line to launch profiled application.
/a List of assemblies to profile. i.e. “MyAssembly1;MyAssembly2″
/v Enable verbose logging (show instrumented code)

当NCover分析完你的代码,它会产生两个文件:一个是 coverage.log ,另一个是 coverage.xml。log文件包含了NCover分析程序时的信息,xml文件很重要,包含了程序的分析信息。你还能在安装后的文件里看到一个Coverage.xsl文件,有了它你就能用浏览器看分析出来的xml文件而不必再自己做xsl转换了。
接下来我们使用NCover。下面是我输入的命令和NCover的输出:

C:\Program Files\NCover>NCOVER.CONSOLE “…\dev\VS2005\Test\DDG\CalcApp\CalcApp\bin\Debug\CalcApp.exe”
NCover.Console v1.5.4 - Code Coverage Analysis for .NET - http://ncover.org Copyright (c) 2004-2005 Peter Waldschmidt

Command: …\dev\VS2005\Test\DDG\Calc
App\CalcApp\bin\Debug\CalcApp.exe
Command Args:
Working Directory:
Assemblies:
Coverage Xml: Coverage.Xml
Coverage Log: Coverage.Log

Waiting for profiled application to connect…
******************* Program Output *******************
***************** End Program Output *****************

当你打了命令NCover.Console “……… .exe”后,程序会调用出这个exe程序,然后你就可以使用这个exe程序的功能,当你觉的可以了,就关闭这个exe程序,那么NCover就会输出“End Program Output”的字样,然后xml文件就产生了。这里我还要很遗憾的告诉你,NCover不支持Web,我试过,结果如下图:



程序分析完后的xml文件很大也很复杂,我们不可能去看这个文件。但你可以用IE来看,比较直观,如下图:



从这里你就可以看到结果了。
但是这样看还不是很理想,有个很好的工具可以帮助你,那就是 NCoverExplorer ,你可以从http://www.kiwidude.com/dotnet/NCoverExplorer.zip下载。下载解压后,你只要打开里面的NCoverExplorer.exe文件,然后加载进NCover分析产生的xml文件,你会看到非常令你满意的程序分析结果,比如下面的图:



每个类甚至每个类中方法的使用率都显示出来了,当你点击其中的方法,你还可以看到代码,它还用不同的颜色标识出了使用的代码。呵呵,真是个很好的工具。
介绍到这里也差不多结束了,这个也只是概要介绍,有时间的话再向大家介绍更详细的应用和其它一些好的工具。希望这些工具能给你带来大的帮助!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: