您的位置:软件测试 > 开源软件测试 > 开源单元测试工具 > Nunit
NUnit学习笔记
作者:网络转载 发布时间:[ 2013/3/20 15:10:20 ] 推荐标签:

 测试效果:示例中包含5个类,前4个类被分为class1和class2两个组,后1个类中包含的四个方法被分为funtion1和function2两个组。对于这种分组的测试,要想看出效果,在打开NUnit后,需要先在Categories选项卡中作出选择,如下图所示:

 可以看到,所有的组默认都在上边的Available Categories列表框中,选中的组则通过Add按钮添加到下边的Selected Categories列表框中,NUnit允许选中多个。测试完成后对于不想要的组,还可以通过Remove按钮放回到上边。选好后,选择Tests选项卡,选中根节点,然后点击Run按钮,效果如下:

 可以看到,只有与class1组对应的Class11和Class12这两个类被测试了。
 此外您可能也注意到了,Categories选项卡中还提供了一个Exclude these categories选项,选中该选项,回到Tests选项卡,选中根节点,然后点击Run按钮,效果如下:

 此时与class1组对应的Class11和Class12这两个类在测试中被忽略了。
 
    Explicit属性,与Ignore属性有些类似,也是用于对暂时不想运行的测试类或测试方法做忽略的。但与Ignore属性相比还有两点差别:一个是Explicit属性不需要说明信息,一个是使用Explicit属性做忽略的类或方法在NUnit中被选中后,将不再被忽略,而是进行测试。
    示例:
VB代码:
        <TestFixture()> _
Public Class Test
<Test(), Explicit()> _
Public Sub TestMethod()
End Sub
End Class
 
<TestFixture(), Explicit()> _
Public Class Test2
<Test()> _
Public Sub TestMethod()
End Sub
End Class
C#代码:
        [TestFixture]
public class Test
{
[Test, Explicit]
public void TestMethod()
{}
}
 
[TestFixture, Explicit]
public class Test2
{
[Test]
public void TestMethod()
{}
}
J#代码:
        /** @attribute TestFixture() */
public class Test
{
/** @attribute Test(),Explicit() */
public void TestMethod()
{}
}
 
/** @attribute TestFixture(),Explicit() */
public class Test2
{
/** @attribute Test() */
public void TestMethod()
{}
}
    测试效果:类Test所忽略的是方法,若不在NUnit中选中该方法,测试后该方法前的圆点为黄色,即在测试中被忽略,若选中了则在测试后显示为绿色或红色,这与测试的结果有关;类Test2所忽略的是类,效果与Test类似。
 
    Platform属性,平台属性,用来指定运行平台,若测试类或测试方法所运行的平台与指定的一致则执行,否则忽略。此外,Platform属性还提供了两个参数,Exclude和Include,前者用于指定将要忽略的平台,后者指定将要运行的平台。后者与默认指定的情况一致。
    示例:
VB代码:
<TestFixture()> _
Public Class Test
<Test(), Platform(Exclude:="Win98,Linux")> _
Public Sub PlatformTest1()
End Sub
 
<Test(), Platform(Include:="Win98,Linux")> _
Public Sub PlatformTest2()
End Sub
End Class
 
<TestFixture(), Platform("Net-2.0")> _
Public Class Test2
<Test()> _
Public Sub PlatformTest1()
End Sub
 
<Test()> _
Public Sub PlatformTest2()
End Sub
End Class
C#代码:
[TestFixture]
public class Test
{
[Test, Platform(Exclude="Win98,Linux")]
public void PlatformTest1()
{}
 
[Test, Platform(Include="Win98,Linux")]
public void PlatformTest2()
{}
}
 
[TestFixture, Platform("Net-2.0")]
public class Test2
{
[Test]
public void PlatformTest1()
{}
 
[Test]
public void PlatformTest2()
{}
}
J#代码:
/** @attribute TestFixture() */
public class Test {
/** @attribute Test() ,Platform(Exclude="Win98,Linux") */
public void PlatformTest1()
{}
 
/** @attribute Test() ,Platform(Include="Win98,Linux") */
public void PlatformTest2()
{}
}
 
/** @attribute TestFixture(), Platform("Net-2.0") */
public class Test2 {
/** @attribute Test() */
public void PlatformTest1()
{}
 
/** @attribute Test() */
public void PlatformTest2()
{}
}
 测试效果:类Test所作用的是方法,测试后PlatformTest1前的圆点为绿色,PlatformTest2前的圆点为黄色,即在测试中被忽略,这是因为我为PlatformTest1指定的参数是Exclude,而PlatformTest2的参数是Include,因此在当前的.net2.0平台下,不运行于Win98和Linux平台的PlatformTest1能够顺利通过,而PlatformTest2则遭到忽略;类Test2所作用的是类,这里默认指定运行平台为.net2.0,而当前运行平台刚好是.net2.0,因此两个方法都会运行通过。
    此外,NUnit还给出了平台的参考,摘录如下:
Win     Win32       Win32S      Win32Windows        Win32NT
WinCE   Win95       Win98       WinMe               NT3
NT4     NT5         Win2K       WinXP               Win2003Server
Unix    Linux       Net         Net-1.0             Net-1.1
Net-2.0 NetCF       SSCLI       Rotor               Mono
  八、版本
    《NUnit学习笔记》,2005年7月24日,NUnit版本2.2.0,IDE为Visual Studio.net 2003。
    《NUnit学习笔记 VS.net 2005篇》,2006年1月28日,NUnit版本2.2.6,IDE为Visual Studio.net 2005。
    《NUnit学习笔记 进阶篇》,2006年1月29日,NUnit版本2.2.6,IDE为Visual Studio.net 2005和Delphi 2006。

上一页1234567下一页
软件测试工具 | 联系我们 | 投诉建议 | 诚聘英才 | 申请使用列表 | 网站地图
沪ICP备07036474 2003-2017 版权所有 上海泽众软件科技有限公司 Shanghai ZeZhong Software Co.,Ltd