zoukankan      html  css  js  c++  java
  • MbUnit[转载]

     

    • 介绍

    1. 了解MbUnit

    MbUnit是一套支持.Net的改进单元测试框架,目标是使最终用户拥有高度一致的test fixtures,使开发人员可以创建新的可定制化的fixtures而无需更改核心部分。MbUnit基于一种C#的图形库QuickGraph。

        与其他单元测试工具(NUnit和csUnit)所不同的是,MbUnit的诞生来自这样一个简单的设想:一个新的测试流程可被整合到已有的框架下。MbUnit采用了简单测试模式(Simple Test Pattern),提供一些新的流程类型,比如TypeFixture可使测试针对一个特定的类型实例(instance)。

    1. 开发状态

    * 开发状态:4 - Beta

    * 运行环境:Win32 (MS Windows)

    * 目标用户:开发人员,最终用户/桌面

    * 许可协议:zlib/libpng License

    * 操作系统:Windows

    * 开发语言:.Net(C#)

    * 主 题:libraries, testing

    • 功能特性

    1. 整体测试框架
    • 全面兼容NUnit,csUnit等测试流程。除调整imports语句之外,无需更改其他代码。
    • 图形界面GUI和控制台两种运行方式,支持NAnt任务管理和NUnitAddIn和Visual Studio的插入模式。
    • 新的测试流程:

        TypeFixture:用于特定类型的实例(对接口测试非常有用);

        EnumerationFixture:测试IEnumerable/IEnumerator的执行情况;

        OrderedCollectionFixture:对集合进行有序测试;

        ProcessFixture:执行多个测试(测试一个序列)。

    • 新的辅助测试功能:重复测试,定时测试,装入已有的测试,多线程测试等。
    • 可扩展的fixtures定义策略:MbUnit一开始即被设计为支持不断演化的和新的fixtures的整合。
    • 支持.Net1.0和1.1。
    • 被DotNetMock工具支持。

     

    1. GUI 与运行测试
    • 可装入多个测试文件,由Reflection 导航栏解压出test fixtures。
    • 以独立线程执行所有的测试,从而保持GUI处于活动状态。
    • 可定制进度条:成功、失败、忽略和not run count。
    • 异常情况的浏览,控制台结果输出,控制台错误输出。
    • IDE环境类应用采用Magick 库。
    • 内嵌的报告机制。
    • 支持Visual Studio插入技术:通过组件、命名空间或者fixture,来选择测试文件,然后借助NunitAddIn,在Visual Studio中直接运行。
    • 支持NAnt任务。

     

    3. QuickGraph 特性

    QuickGraph是采用C#编写的通用图形库,其最初萌芽来自另外一个库(boost graph library)。MbUnit中用它来创建和浏览fixtures。QuickGraph库调用了通用的图形数据结构和许多算法,例如最短路径、最大流和随机漫步算法等。

    • 丰富的图形概念定义。
    • 支持AdjacencyGraph和 BidirectionalGraph。
    • Filtered graphs,traversals:

      深度优先搜索与广度有限搜访;

      拓扑排序,强连接;

      Dijkstra最短路径;

      随机漫步与树产生算法;

      最大流算法:Edmund Karp 和Push Relabel;

      图形克隆;

      相似度计算;

      图形压缩。

    • 可定制图形的顶点与边。
    • 可序列化为GraphML或者其他XML格式。
    • 支持Graphivz输出。
    • 通过Netron库与Windows格式的整合。

     

    4. 结果输出

    报告产生器在提交报告之前,测试结果可被序列化为XML。目前支持以下输出格式:

    • XML
    • HTML
    • Text

     

    • 安装

    1. 安装要求

    如前所述,MbUnit是支持微软VS.Net的改进的测试软件,可以选择你喜欢的任何.net语言(如C#)。推荐安装最新版的Visual Studio.Net版本以利用最新的功能。

     

    1. 安装

    在最新版本的压缩包中,MbUnit最重要的特性已被编译成.dll和.exe文件。我建议将解压后的文件夹拷贝到Visual Studio的安装目录下,或者设置VS的搜索路径,使其指向MbUnit目录。

            Copy [MbUnit安装目录] [VS目录]

    创建工程时,声明所需的dll文件,即可使用其中的class。重要的dll有MbUnit.Core.dll、MbUnit.Framework.dll等。包中的MbUnit.GUI.exe等文件可直接运行。

            下面所列的一个简单的具有代表性的例子或许可以给你帮助。

    • 使用方法

    1. 使用MbUnit的一个简单TestFixture

    以下是创建你的第一个MbUnit TestFixture的步骤说明(NUnitcsUnit的用户注意,其语法是相同的)

    第一步:创建工程
    • 用你喜欢的.Net语言创建一个库工程(组件)(此处选用C#).
    • 加入以下引用说明:
      • MbUnit.Core.dll
      • MbUnit.Framework.dll
    第二步:创建TestFixture

    创建一个新类MyFirstTest,标签属性设置为TestFixture。从而告诉MbUnit这个类中包含了所要进行的测试项目。

    using MbUnit.Core.Framework;
    using MbUnit.Framework;
    [TestFixture("This is my first test")]
    				
    public class MyFirstTest
    {
    }

     

    第三步: 加入测试的方法(method

    此时,MyFirstTest尚未任何的测试语句。我们增加一个method验证112——加入方法OnePlusOneEqualTwo,你可在该方法中使用Assert 静态帮助类中提供的断定检查语句:

    [TestFixture("This is my first test")]
    public class MyFirstTest
    {
        [Test]
        public void OnePlusOneEqualTwo()
        {
             Assert.AreEqual(2, 1+1, "This is an error message");
        }
    }

     

    方法OnePlusOneEqualTwo的属性非常关键,它必须是

    public void MethodName(void);

    第四步:运行测试

    完成上述组件的编译后,启动MbUnit GUI界面,将dll文件拖放进去或者使用菜单来装载测试组件。测试文件树结构将立即显示在窗口中:GUI扫描所装入的文件,查找标签属性TestFixture,然后生成树型结构,而各个结点对应着命名空间。

    点击run启动测试。如果执行测试成功,则树型结构中的图标和父控件的背景变为绿色,而如果测试失败,背景均变为红色。

    要查找关于执行失败的更多信息,点击失败的结点(inode),查看对应的异常情况。

     

    2.类与接口

    查看MbUnit和QuickGraph中详细的类和接口的定义,请参考包中的两个帮助文件:

    MbUnit.Documentation.chm

    QuickGraph.Documentation.chm

    • 更多信息

    • 获取MbUnit: 最新版本是2.20beta,支持微软VS2005中的一些新特性如CodeSnippets。你可以从下面网址免费下载:

    http://www.dotnetwiki.org/Default.aspx?tabid=52

    相关链接:

    http://mbunit.tigris.org

    • 参与MbUnit:现在无论MbUnit和QuickGraph都需要算法编写者、GUI界面设计和测试人员,以及文档编写者。我非常期望更多的优秀人才加入到这个有趣的工作中,请

    Mail to: pelikhan@tigris.org。

     

    http://mbunit.tigris.org

    http://blog.dotnetwiki.org/category/14.aspx

    http://blog.dotnetwiki.org/archive/2004/04/27/168.aspx

    http://blog.dotnetwiki.org/archive/2004/04/30/176.aspx

    http://www.testdriven.com/modules/news/article.php?storyid=58

    http://blog.dotnetwiki.org/archive/2004/05/19/241.aspx

     

  • 相关阅读:
    DShow实现一个avi视频的播放(含有个人解释和注释)
    指针和引用的区别
    从头看算法导论 习题2.3-7 深入分析
    程序员福利各大平台免费接口,非常适用
    NYOJ 58 最少步数
    NYOJ 42 一笔画问题
    NYOJ 1058 部分和问题
    NYOJ 21 三个水杯
    winform里面网页显示指定内容
    C#中List<T>对象的深度拷贝问题
  • 原文地址:https://www.cnblogs.com/lexus/p/1545866.html
Copyright © 2011-2022 走看看