时间:2012/3/5 版权所有,侵权必究。
出处: http://blog.csdn.net/snowshinoy
最近有人问我如何在Silverlight的项目中使用Nunit做测试,因为一直没有做过Silverlight的项目,所以不太了解。做了一番尝试后,发现Nunit在Silverlight项目中的使用与以往还是有比较大的区别的。所以写这篇,也希望能对有同样需求的人有点帮助。
一、什么是Silverlight
Silverlight是微软提出的一种跨平台、支持多种浏览器的互联网多媒体呈现技术,使用时需要一个插件的支持,在这个插件的支持下,可以带来全新的Web开发方式及呈现效果。在.NET Framework4.0开始支持。作为一种新的技术,对runtime的要求决定了之前的NUnit的架构无法简单的集成到Silverlight的项目中。如果我在原先的Nunit Gui中加载Silverlight的测试dll,会出现如下的错误提示:
二、Nunit-Silverlight的集成
我们可以从http://code.google.com/p/nunit-silverlight/下到支持Silverlight的Nunit版本。下载完成后可以看到主要有下面几个文件。
下面我们一步步来创建一个Silverlight的Nunit测试项目:
a. 创建一个Silverlight的项目,并添加对Nunit测试框架的引用
创建成功后,我们可以看到Silverlight项目主要由2个工程组成。
Web结尾的项目主要是页面内容,我们的主要工作都在另外一个项目SilverlightApplication1上完成。添加对Nunit的必要引用:
在App.xaml.cs文件中添加引用
using NUnit.Framework;
using NUnit.Silverlight;
using Microsoft.Silverlight.Testing;
using Microsoft.Silverlight.Testing.UnitTesting.Metadata;
b. 修改源代码,加入测试库支持和初始化测试页面
修改App.xaml.cs文件中的Application_Startup事件响应函数如下所示
private void Application_Startup(object sender, StartupEventArgs e)
{
UnitTestSystem.RegisterUnitTestProvider(
new Microsoft.Silverlight.Testing.UnitTesting.Metadata.NUnit.NUnitProvider());
RootVisual = UnitTestSystem.CreateTestPage();
}
在这段代码中,指定初始页面为测试页面,这就是Silverlight测试与之前最不同的地方,必须在测试页面中进行测试,因为需要插件支持环境Silverlight程序才能运行。
c. 添加测试
现在就和之前用Nunit测试差不多了,编写测试用例代码,这里我们添加一个成功的测试,一个失败的测试。
[TestFixture]
public class SilverlightTest
{
[Test]
public void Test1()
{
}
[Test]
public void Test2()
{
Assert.Fail();
}
}
然后编译工程,运行项目,就可以看到测试页面了,这里会有一个倒计时,如果几秒内你不做操作,就会默认运行所有的测试用例。或者你可以编写tag来选择需要运行的测试。
大家可以看到我们的测试有一个Pass了,一个Fail了,点击具体的测试,可以看到详细的信息。
三、结语
至此,我们已经成功在Silverlight项目中集成了NUnit Test Framework。至于测试用例的编写和断言系统,和原先的Nunit并没有太多的区别。如果有兴趣的朋友,可以充分利用Web的特点,构建自己个性化和使用的测试页面,方便自己的使用。
Rss订阅IQuickTest(关于如何订阅?)
GoogleReader订阅地址: http://feeds.feedburner.com/iquicktest
nbsp;