51Testing软件测试论坛
标题:
【Nunit入门系列讲座 2】Nunit的测试集管理
[打印本页]
作者:
shinoy
时间:
2011-11-17 11:17
标题:
【Nunit入门系列讲座 2】Nunit的测试集管理
作者:shinoy
时间:2011/11/10 版权所有,侵权必究。
出处:
http://blog.csdn.net/snowshinoy
本节示例代码下载:
样例代码
上一次讲座中我们初步了解了NUnit的用法,并定义了一些简单的测试(请参考
http://blog.csdn.net/snowshinoy/article/details/6951352
)。大家可能也注意到了,这些测试什么也不做,就是直接让测试通过或者失败。今天,我们会了解一下NUnit中最常用的一项功能——测试集管理。大家都知道,当我们的测试Case越来越多的时候,每次选择其中一些相关Case来跑会显得相当的不便,其他人也不能一眼看出我们的测试是如何分类的。通过NUnit提供的一些属性,我们可以很轻松的完成这种测试分类及分组运行的要求。
一、TestFixture 和 Test属性
NUnit的很多功能都是通过属性来提供的。属性是.NET语言中一个很重要的特性,从代码上看,属性就是一个加在元素前面的中括号标识。如下
[Ignore("ignored test")]
public void IgnoredTest()
{
throw new Exception();
}
复制代码
上面代码中的第一行就是一个属性定义。从原理上说,属性是在.NET组件文件的Metadata中添加的一些可以被其他组件读取的信息。大家如果不理解,就把他想象成HTML的标签就可以。
NUnit根据测试组件的命名空间及TestFixture和Test属性来分类不同的测试。
TestFixture属性定义了一组测试,该属性加在测试类定义上,表明该类中定义的测试都是属于同一个测试集的。
Test属性定义了一个测试,该属性加在测试类成员函数定义上,表明该函数定义了一个单独的测试。
知道了这2个属性的基本概念后,我们就可以来定义我们的测试集了。这里我们定义两组测试,一组名称叫IQuickTestGp1,另一组叫IQuickTestGp2。这个2个测试分别为自动化组和白盒组所用,每个测试集里包含的测试如下:
IQuickTestGp1: AutomationTest1,AutomationTest2,AutomationTest3。
IQuickTestGp2: WhiteboxTest1,WhiteboxTest2,WhiteboxTest3.
using System;
using System.Collections;
using NUnit.Framework;
namespace MyFirstTest
{
/// <summary>
/// This is our first Nunit test
/// </summary>
[TestFixture]
public class IQuickTestGp1
{
[Test]
public void AutomationTest1()
{
Console.WriteLine("AutomationTest1 Pass");
}
[Test]
public void AutomationTest2()
{
Console.WriteLine("AutomationTest2 Fail");
Assert.Fail();
}
[Test]
public void AutomationTest3()
{
Console.WriteLine("AutomationTest3 Ignore");
Assert.Ignore();
}
}
[TestFixture]
public class IQuickTestGp2
{
[Test]
public void WhiteboxTest1()
{
Console.WriteLine("WhiteboxTest1 Pass");
}
[Test]
public void WhiteboxTest2()
{
Console.WriteLine("WhiteboxTest2 Fail");
Assert.Fail();
}
[Test]
public void WhiteboxTest3()
{
Console.WriteLine("WhiteboxTest3 Ignore");
Assert.Ignore();
}
}
}
复制代码
如上代码编译过后,就生成了MyFirstTest.dll,和前面一讲一样,将该测试组件加载到NUnit的Gui中,就可以看到测试已经按照我们的意愿组织成了如下形式:
[attach]76119[/attach]
是不是很整齐,漂亮呢?让我们在第一组TestFixture上来Run测试,就会发现,只有该测试集下的测试被启动了。这样我们不用再在一堆测试中找我们需要跑的测试在那里了,只要把相关测试分类到不同集合下就相当清楚。
[attach]76121[/attach]
最后再说一个技巧,其实不光通过TestFixture属性可以进行测试分类,细心的朋友可能已经注意到了,上图中的MyFirstTest也是一个节点,这个不就是我们代码的名称空间么?对了,利用名称空间一样可以进行测试集的分类,也就是把一组TestFixture放在一起。我们重新添加一个cs文件,这份文件和前面我们输入的完全一样,只要修改下Namespace定义即可
namespace MyFirstTest2
复制代码
现在我们重新编译下测试,看下这次的测试集是什么样的。
[attach]76122[/attach]
测试集本身又被分类到了2大类中:MyFirstTest和MyFirstTest2。
现在我们了解了NUnit中测试集管理的基本技巧,其实NUnit还有更多的测试集管理方法,我们后续将会详细介绍。请继续关注本系列课程,如果对课程有不理解的问题,可以发邮件给我
28345697@qq.com
,谢谢。
白盒测试QQ交流群:186447632
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/)
Powered by Discuz! X3.2