NUnit的测试方法与VS中启用它来调试
2012-05-16 17:02
274 查看
在VS中加入单元测试框架:
右键项目“属性“来到“调试”
启动操作,选择“启动外部程序”选择NUnit程序
C:\Program Files\NUnit 2.5.9\bin\net-2.0\nunit.exe
这样就可以在生成的时候,自动启用NUnit进行调试
Not a Test Assembly
The assembly was not built with any known testing framework
出现上述这种错误,确认有没有加载using NUnit.Framework;
using NUnit.Framework;
namespace NUnitTest
{
[TestFixture]
public class Class1
{
[Test]
public void Add()
{
int a = 1;
int b = 2;
int sum = a + b;
Assert.AreEqual(sum, 3);
}
}
}
标识类的特性为TestFixture,以及方法的特性标识为Test这样就可以测试了,其中Assert是进行测验的一个类,里面有许多的静态方法。
当然不标识类的特性也可以测试,不标识方法的特性,调试的时候就不出现。
测试的效果图:
如果把上面重复的公用,怎么做呢,如下:
private int a;
private int b;
[SetUp]
public void InitializeOperands()
{
a = 1;
b = 2;
}
使用SetUp来标识即可。
如果想忽略这个方法
添加[Ignore]特性,这个方法还是会显示,只是会忽略测试,进度条是黄色的。
其他的一些方法
TestFixtureSetUp打开数据库连接,数据共享
TestFixtureTearDown关闭数据库连接, 数据共享
SetUp或TearDown
[Category("加法")]把一些方法分组。
异常的捕获
[ExpectedException(typeof(DivideByZeroException))]
public void DivideByZero()
{
int zero = 0;
int result = a / zero;
Assert.Fail("Exception");
}
如果存在异常就通过,所以上面这个通过测试。
如果修改为[ExpectedException(typeof(InvalidOperationException))]
那么就会报错,尝试除以0,这是不允许的。
好了,综合演示一下
namespace NUnitTest
{
[TestFixture]
public class Class1
{
[TestFixtureSetUp]
public void FixtureSetUp()
{
Console.Out.WriteLine("FixtureSetUp");
}
[TestFixtureTearDown]
public void FixtureTearDown()
{
Console.Out.WriteLine("FixtureTearDown");
}
[SetUp]
public void SetUp()
{
Console.Out.WriteLine("SetUp");
}
[TearDown]
public void TearDown()
{
Console.Out.WriteLine("TearDown");
}
[Test]
public void Test1()
{
Console.Out.WriteLine("Test 1");
}
[Test]
public void Test2()
{
Console.Out.WriteLine("Test 2");
}
}
}
运行结果:
FixtureSetUp
***** NUnitTest.Class1.Test1
SetUp
Test 1
TearDown
***** NUnitTest.Class1.Test2
SetUp
Test 2
TearDown
FixtureTearDown
右键项目“属性“来到“调试”
启动操作,选择“启动外部程序”选择NUnit程序
C:\Program Files\NUnit 2.5.9\bin\net-2.0\nunit.exe
这样就可以在生成的时候,自动启用NUnit进行调试
Not a Test Assembly
The assembly was not built with any known testing framework
出现上述这种错误,确认有没有加载using NUnit.Framework;
using NUnit.Framework;
namespace NUnitTest
{
[TestFixture]
public class Class1
{
[Test]
public void Add()
{
int a = 1;
int b = 2;
int sum = a + b;
Assert.AreEqual(sum, 3);
}
}
}
标识类的特性为TestFixture,以及方法的特性标识为Test这样就可以测试了,其中Assert是进行测验的一个类,里面有许多的静态方法。
当然不标识类的特性也可以测试,不标识方法的特性,调试的时候就不出现。
测试的效果图:
如果把上面重复的公用,怎么做呢,如下:
private int a;
private int b;
[SetUp]
public void InitializeOperands()
{
a = 1;
b = 2;
}
使用SetUp来标识即可。
如果想忽略这个方法
添加[Ignore]特性,这个方法还是会显示,只是会忽略测试,进度条是黄色的。
其他的一些方法
TestFixtureSetUp打开数据库连接,数据共享
TestFixtureTearDown关闭数据库连接, 数据共享
SetUp或TearDown
[Category("加法")]把一些方法分组。
异常的捕获
[ExpectedException(typeof(DivideByZeroException))]
public void DivideByZero()
{
int zero = 0;
int result = a / zero;
Assert.Fail("Exception");
}
如果存在异常就通过,所以上面这个通过测试。
如果修改为[ExpectedException(typeof(InvalidOperationException))]
那么就会报错,尝试除以0,这是不允许的。
好了,综合演示一下
namespace NUnitTest
{
[TestFixture]
public class Class1
{
[TestFixtureSetUp]
public void FixtureSetUp()
{
Console.Out.WriteLine("FixtureSetUp");
}
[TestFixtureTearDown]
public void FixtureTearDown()
{
Console.Out.WriteLine("FixtureTearDown");
}
[SetUp]
public void SetUp()
{
Console.Out.WriteLine("SetUp");
}
[TearDown]
public void TearDown()
{
Console.Out.WriteLine("TearDown");
}
[Test]
public void Test1()
{
Console.Out.WriteLine("Test 1");
}
[Test]
public void Test2()
{
Console.Out.WriteLine("Test 2");
}
}
}
运行结果:
FixtureSetUp
***** NUnitTest.Class1.Test1
SetUp
Test 1
TearDown
***** NUnitTest.Class1.Test2
SetUp
Test 2
TearDown
FixtureTearDown
相关文章推荐
- VS启用IIS调试的方法及可能碰到的问题。
- VS 生成下面的模块时,启用了优化或没有调试信息 原因及解决方法
- vs打包部署自定义操作进入调试的方法
- NUnit使用之对Private方法的测试(转)
- 使用VS的终端工具调试时,添加参数调试方法
- VS调试“附加到进程”时有多个相同w3wp.exe时不知选择哪一个的解决方法
- [RK3288][Android6.0] 调试笔记 --- 测试I2C设备正常传输方法
- 查看内存的方法。vs-调试-窗口-内存
- [RK3288][Android6.0] 调试笔记 --- 测试I2C设备正常传输方法【转】
- 关于VS2015调试DX11的HLSL着色器代码的方法与步骤
- 在vs中不用接外挂就可以启动NUnit的方法
- vs.net的Web程序无法调试的解决方法之一
- 测试网络SNMP连接的几个方法(我平时调试SNMP程序时用到的几个解决方案)
- VS2013 调试窗口一闪而过的解决方法
- VS使用进程调试出现“没有正确安装调试器。请运行安装程序安装或修复调试器”的错误,解决方法。
- Qt 使用vs调试的方法
- VS调试时找不到dll或exe的方法
- vs调试方法
- 在VS.net调试环境中运行网站程序时ReportViewer控件的工具栏显示为英文的解决方法
- 未加载mfc120ud.i386.pdb:VS2013调试MFC程序解决方法