VS2008单元测试之NUnit集成与应用(转)

本文介绍了如何使用NUnit进行单元测试,包括下载、安装、配置Visual Studio环境、编写测试用例、运行测试等步骤。此外,还展示了如何在测试用例中使用外部配置文件来实现多个测试用例的自动化执行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

转自:http://www.cnblogs.com/yangyancheng/archive/2010/02/22/1671185.html 

首先下载NUnit,我这里用的是2.5的版本,可以去http://www.nunit.org下载最新版本。
安装版:http://launchpad.net/nunitv2/2.5.3/2.5.3/+download/NUnit-2.5.3.9345.msi
解压版:http://launchpad.net/nunitv2/2.5.3/2.5.3/+download/NUnit-2.5.3.9345.zip
我这里用的是解压版。
然后,打开VS2008,新建一个类库工程,如下图示:

1

在此工程中,新建一个类,取名TestedClass,具体代码如下:

 using System;

using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace NunitTest
{
     public  class TestedClass
    {
         public  static  int Add( int n,  int m)
        {
             return n + m;
        }
         public  static  int Minus( int n,  int m)
        {
             return n - m;
        }
    }
}

 

 然后再新建一个工程NunitDemo,作为NUnit的具体使用工程,主要是放一些测试用的代码,具体如下图所示

2

并添加两个引用,一个是刚才建的工程,另一个是NUnit

在工程中,新建一个类,取名为TestTestedClass,并键入如下代码

 using System;

using System.Collections.Generic;
using System.Linq;
using System.Text;
using NUnit.Framework;
using NunitTest;
using System.IO;

namespace NunitDemo
{
    [TestFixture]
     public  class TestTestedClass
    {
        [Test]
         public  void TestAdd()
        {
             int n =  10;
             int m =  20;
            Assert.AreEqual(TestedClass.Add(n, m),  30);
        }

        [Test]
         public  void TestMinus()
        {
             int n =  10;
             int m =  20;
            Assert.AreEqual(TestedClass.Minus(n, m),  30);
        }
 
    }
}

 

 现在可以启动NUnit进行,选择File->Open Project,浏览到刚才建立的NunitDemo的bin目录,选择NunitDemo.dll,这时就可以看到所写的两个测试方法了,点击Run即可运行,结果如下图示:

在这个图中,我们可以看到哪个用例通过,哪个用例未例未通过,原因是什么,如:
NunitDemo.TestTestedClass.TestMinus:
  Expected: -10
  But was:  30
这样,测试用例只能是在测试代码中使用,而且,要更改测试用例,必须重新编译,为了一次使用多个用例,可以在Bin目录下建立一个TestCase.txt的文本文件,并填入如下内容:
10 20 30
0 0 0
1 -1 1
11111111 11111111 22222222
这里每行代码一个测试用例,然后在测试工程中,键入如下代码:

 [Test]

         public  void TestAdd2()
        {
            StreamReader sr =  new StreamReader( " TestCase.txt ");
            
             string testCase=sr.ReadLine();
             while(testCase!= null)
            {
                 string[] num = testCase.Split( '   ');
                 if (num.Length <  1)
                     return;

                 int n =  int.Parse(num[ 0]);
                 int m =  int.Parse(num[ 1]);
                 int result =  int.Parse(num[ 2]);

                Assert.AreEqual(TestedClass.Add(n, m), result);

                testCase = sr.ReadLine();

            }
            sr.Close();          

        }

 

 这样,我们如果更改用例,直接更改文件内容即可,并可以一次使用多个用例。

以上是采用外部NUnit的程序运行,如果想要在VS 环境中运行,在 Solution Explorer里右击你的NunitDemo工程, 在弹出菜单中选择Properties,会打开VS的程序设置见面在左侧选择Debug,在右侧的Start Action中点选Start external program:点击右侧的浏览按钮(...)浏览到NUnit的安装目录下的nunit.exe这个文件,即可。
NUnit 在线quickStart: http://www.nunit.org/index.php?p=quickStart&r=2.5.3
文档下载: http://sourceforge.net/projects/nunit/files/NUnit%20Version%202/NUnit-2.5.2.9222-docs.zip/download

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值