在Silverlight项目中使用Nunit框架

作者:shinoy
 时间: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的特点,构建自己个性化和使用的测试页面,方便自己的使用。


白盒测试QQ交流群:

 Rss订阅IQuickTest关于如何订阅?

GoogleReader订阅地址: http://feeds.feedburner.com/iquicktest



nbsp;

你可能感兴趣的:(Nunit入门系列讲座,silverlight,框架,测试,application,web开发,跨平台)