zoukankan      html  css  js  c++  java
  • 方便你的测试(TestDriven.NET)

            测试驱动现在应该是比较普遍的概念了,我们一般都会用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的):

                                                                                                
            接下来要介绍的是NCover。它是用来测试代码的覆盖率的。你可以到http://ncover.org/site/看它的详细信息和下载它,目前的最新Beta版本是1.5.4。安装很简单,就不提了,举个例子怎么使用它。
            假如我写个非常简单的计算器,类如下(因为我看的网站上有现成的例子,先引来用了):

                                                                       

            它的WinForm如下:

                                                                   

            这个WinForm的后台代码如下:

                                                                   

            编译后就有了一个.exe文件。然后我就可以使用NCover了。
            当你看到安装后的NCover后,可能会有点失望,是的,它没有华丽的界面,而只是一个命令行工具,但它功能强大,能够分析哪些代码被执行过了和执行的频繁度,并能将这些信息显示出来。
            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文件,你会看到非常令你满意的程序分析结果,比如下面的图:

                                               

            每个类甚至每个类中方法的使用率都显示出来了,当你点击其中的方法,你还可以看到代码,它还用不同的颜色标识出了使用的代码。呵呵,真是个很好的工具。
            介绍到这里也差不多结束了,这个也只是概要介绍,有时间的话再向大家介绍更详细的应用和其它一些好的工具。希望这些工具能给你带来大的帮助!

     

  • 相关阅读:
    HTTP状态码及其含义
    c和python解决各种字符串反转问题的不同思路
    Python找出一串字符中出现最多的字符
    3个基本算法的实现技巧
    一种字符串搜索方法
    数据库开发经典总结
    apt、dpkg参数整理
    Python集合(set)类型的操作
    Python和Decorator(装饰器)模式
    Git使用基础
  • 原文地址:https://www.cnblogs.com/fxb248/p/455560.html
Copyright © 2011-2022 走看看