使用TestDriven搭建测试环境

来源:互联网 发布:考研没动力怎么办知乎 编辑:程序博客网 时间:2024/05/17 07:08

1.   前言

最近,在做一个简单的项目,想趁着这段时间好好整理下思路,建立起自己的一套体系来。没有体系的乱做,实在是效率底下又学不到系统的东西。这里对最近搭建测试环境做了一点总结。

考虑使用TestDriven是因为,看《设计模式》的时候,作者提到了他的项目里使用的是TestDriven,因此就从TestDriven着手。

话说高手都选择了TestDriven,那么自然是个NB的东西,查阅资料一番,果然是测试神器。关于其前身今世,这里就不细说了,直说一句。TestDriven集成了各家测试工具,但不是简单的集成,它做到了嵌入IDE。

 

2.   建立测试类库

2.1.  关于类库引用

搭建测试环境首先是要建立一个测试类库,引用被测试的类库,还需要引用nunit.framework。需要说明的是请看Tip1 和Tip2。

Tip1:nunit.framework在TestDriven安装目录里边,X:\ProgramFiles (x86)\TestDriven.NET 3\NUnit\2.6\framework 其中X及数字版本为,当前计算机的系统盘和安装的TestDriven版本。

Tip2:这里只需要一个类库就可以测试了,因为TestDriven是自动的把结果output到输出框的。

2.2.  关于NUnit

关于这个NUnit,是第三方的测试框架,用于提供完整的测试框架,提供了断言、测试方法的组装等。在说明使用方法前,需要知道NUnit类似.NET自带的测试框架,提供了诸多的标签对类和方法进行标识。简单的使用如下:

1)  TestFixture

用于标识类,说明这是个测试的集合,有了这个标签才可以使用其他标签。换句话说这相当于所有标签运行的一个容器。

2) TestFixtureSetUp

用于标识方法,被标识的方法会在一个TestFixture被测试的开始时先运行。可以理解为准备测试的工序。

3) Test

用于标识方法,被标识的方法为测试的主体方法,在这里写主要的测试用例。

4) TearDown

用于标识方法,被标识的方法会在一个TestFixtrue被执行完毕后执行。

5) 断言 Assert

用于判断两个object是否相等。如果判断失败,测试自动终止,并提示信息。一般的测试用例用该工具进行结果的判定。

 

 

2.3.  写测试类

这里贴上我的一个例子:

[NUnit.Framework.TestFixture]//标签标识这是一个完整的测试类    public class StreetDALTest    {        private StreetDAL_street;        [TestFixtureSetUp]//标签标识这是一个测试的准备方法,测执行测试前执行        public voidTestFixtureSetup()        {            ISession session = newNHibernateHelper().GetSession();           _street = new StreetDAL(session);         }       [NUnit.Framework.Test]//标签标识这是一个测试方法,即测试的主体方法        public voidGetStreetByIdTest()        {            //Assert.AreEqual(1, 2); //断言,这里错误后不执行下面的所有内容            var street1 = new T_Street { StreetName = "测试路", DistrictName = "测试" };           _street.CreateStreet(street1);                   }        [TestCase("a参数")]//这是一个带参数的测试        public void TestCase(string a)        { }        [TearDown]//标签标识这是一个测试结束方法,每个test方法执行完后都会执行这个方法        public voidAfterTest()        { }


 

3.   执行测试

建立好了测试的类库和方法之后就可以执行测试了,区别与微软的测试类,TestDriven的伟大之处在于,它支持右键点击测试。

在类中右键,选择Run Test,即可。下面具体说明下这个右键菜单。


3.1.  Run Test(s)

这个功能会自动执行当前的TestFixtrue下的所有测试用例,并将结果输出到 输出面板。


3.2.  Test With

这个功能是TestDriven的高级方法,其下有5个子功能,下面做简单说明。

 

1.      Debugger

该模式即,调式模式,允许用户设置断电调式。

2.      NCover

该模式调用NCover工具,分析测试用例的覆盖率。


3.      Coverage

该模式,也是一个分析代码覆盖率的工具,但是显示在output窗口,不打开另外的窗体。

4.      Performance

该功能是分析当前的代码执行效率,以下是部分截图


5.      In-Proc

这个模式,不是十分的理解,网上有说是在一个Process中执行。具体的功能不是很了解,希望有人能解答下。

 

4.   TestDriven的其他功能

TestDriven的测试功能显然不是这么简单的,对于TDD模式的开发,一大堆的测试用例,如果都是上面那样测试,那显然是多么的繁琐了,所以只要在类库上右击便可以看到对于整个类库的测试功能,这里不做累赘的说明。

 

以上是本人在搭建测试环境时,对TestDriven的简单了解。如有不足之处请大家指出探讨学习。

5.   参考资料:

1.官网及下载:

http://www.testdriven.net/

2.TestDriven.Net常用属性介绍及使用

http://www.cnblogs.com/kingjiong/archive/2010/02/26/1674131.html

3.使用TestDriven

http://wenku.baidu.com/view/9fc8a46ea98271fe910ef9cc.html

 

原创粉丝点击