Testing 如何在WindowsPhone7应用程序开发中使用单元驱动编写单元测试?

Testing 如何在WindowsPhone7应用程序开发中使用单元驱动编写单元测试?,testing,windows-phone-7,unitdriven,Testing,Windows Phone 7,Unitdriven,我一直在搜索能够在WindowsPhone7应用程序开发中测试异步函数调用的单元测试框架。是的,我看到的是单位驱动。然而,该框架不像NUnit那样对开发人员友好(不幸的是,NUnit无法测试异步方法)。在互联网上,人们一直在使用UD进行单元测试。有人能过来给点建议吗 我的具体问题是: 1) 我在哪里包括以下初始化代码 private void Application_Startup(object sender, StartupEventArgs e) { this.RootVisua

我一直在搜索能够在WindowsPhone7应用程序开发中测试异步函数调用的单元测试框架。是的,我看到的是单位驱动。然而,该框架不像NUnit那样对开发人员友好(不幸的是,NUnit无法测试异步方法)。在互联网上,人们一直在使用UD进行单元测试。有人能过来给点建议吗

我的具体问题是:

1) 我在哪里包括以下初始化代码

private void Application_Startup(object sender, StartupEventArgs e)
{
      this.RootVisual = new UnitDriven.TestEngine(Assembly.GetExecutingAssembly());
}
2) 如何为UD编写测试用例?有了NUnit,我可以随应用程序一起编写测试用例,NUnit加载dll并执行测试。我曾尝试将其放入我的应用程序中,但Visual Studio 2010 express总是抱怨找不到符号GetContext()

3) UD附带了三个DLL。UnitDrivenLight,UnitDrivenPhone,UnitDrivenNet。。。那么,UnitDrivenLight和UnitDrivenPhone的角色是什么?目前非常混乱

谢谢


Simo

我自己没有使用过unitdrive,但我已经成功地使用了Windows Phone Toolkit附带的测试框架(它支持异步测试)


事实上,我已经创建了一个添加命令行支持的。它在NuGet as中(自定义MSBuild任务使手动安装复杂化)。

我自己没有使用UnitDriven,但我已经成功使用了Windows Phone Toolkit附带的测试框架(它支持异步测试)


事实上,我已经创建了一个添加命令行支持的。它在NuGet as中(自定义MSBuild任务使手动安装复杂化)。

最后,在Szalay的提示下,我开始使用Microsoft的sliverlight测试框架进行异步测试,下面是示例测试类:

namespace TestApp
{
    using System.Threading;
    using Microsoft.Silverlight.Testing;
    using Microsoft.VisualStudio.TestTools.UnitTesting;

    /// <summary>
    /// An example test class
    /// </summary>
    [TestClass]
    public class ExampleTestClass : SilverlightTest
    {

        /// <summary>
        /// Sample asynchronous test
        /// </summary>
        [TestMethod, Tag("Asynchronous Test"), Asynchronous]
        public void SampleAsynchronousTest()
        {
            ThreadPool.QueueUserWorkItem(o =>
                {
                    for (int j = 0; j < 10000; j++){}
                    CheckResult(10);
                });
        }

        /// <summary>
        /// Check result
        /// </summary>
        /// <param name="variable">result</param>
        private void CheckResult(int variable)
        {
            Assert.IsTrue(variable == 10);
            EnqueueTestComplete();
        }
    }
}
namespace TestApp
{
使用系统线程;
使用Microsoft.Silverlight.Testing;
使用Microsoft.VisualStudio.TestTools.UnitTesting;
/// 
///一个示例测试类
/// 
[测试类]
公共类ExampleTestClass:SilverlightTest
{
/// 
///样本异步测试
/// 
[TestMethod,标记(“异步测试”),异步]
公共无效同步测试()
{
ThreadPool.QueueUserWorkItem(o=>
{
对于(int j=0;j<10000;j++){}
检查结果(10);
});
}
/// 
///检查结果
/// 
///结果
私有无效检查结果(int变量)
{
Assert.IsTrue(变量==10);
EnqueueTestComplete();
}
}
}

最后,在Szalay的提示下,我开始使用Microsoft的sliverlight测试框架进行异步测试,下面是示例测试类:

namespace TestApp
{
    using System.Threading;
    using Microsoft.Silverlight.Testing;
    using Microsoft.VisualStudio.TestTools.UnitTesting;

    /// <summary>
    /// An example test class
    /// </summary>
    [TestClass]
    public class ExampleTestClass : SilverlightTest
    {

        /// <summary>
        /// Sample asynchronous test
        /// </summary>
        [TestMethod, Tag("Asynchronous Test"), Asynchronous]
        public void SampleAsynchronousTest()
        {
            ThreadPool.QueueUserWorkItem(o =>
                {
                    for (int j = 0; j < 10000; j++){}
                    CheckResult(10);
                });
        }

        /// <summary>
        /// Check result
        /// </summary>
        /// <param name="variable">result</param>
        private void CheckResult(int variable)
        {
            Assert.IsTrue(variable == 10);
            EnqueueTestComplete();
        }
    }
}
namespace TestApp
{
使用系统线程;
使用Microsoft.Silverlight.Testing;
使用Microsoft.VisualStudio.TestTools.UnitTesting;
/// 
///一个示例测试类
/// 
[测试类]
公共类ExampleTestClass:SilverlightTest
{
/// 
///样本异步测试
/// 
[TestMethod,标记(“异步测试”),异步]
公共无效同步测试()
{
ThreadPool.QueueUserWorkItem(o=>
{
对于(int j=0;j<10000;j++){}
检查结果(10);
});
}
/// 
///检查结果
/// 
///结果
私有无效检查结果(int变量)
{
Assert.IsTrue(变量==10);
EnqueueTestComplete();
}
}
}

它是哪个工具包?在此页面中,silverlight for windows phone toolkit 2011年2月没有测试框架。我从Jeff Wilcox的网站上下载了silverlight v3。但是在那个版本中,我没有看到C#er在本页中写的[Asynchronous]标记,[Asynchronous]标记肯定存在于WP7CI中,它是从同一个源代码编译的。我不再使用Jeff的版本,因为它不支持CI环境。我从NuGet获得了wp7 CI。我仍然看不到[Asynchronous]标记可用。如何使用WP7CI测试异步方法?你能给我举个例子吗?在我使用Microsoft.Silverlight.Testing包含
之后,我得到了
[Asynchronous]
,但我仍然会
任务
定义<代码>[TestMethod][Asynchronous]公共IEnumerable TestAsynchronous()
{
Task
在Silverlight中不存在。我正在写一篇关于如何使用
IObservable
编写异步测试的博文,其中将介绍异步测试的主题。我完成后将发布一个链接。它是哪个工具包?在本页中,Silverlight for windows phone toolkit 2011年2月没有测试框架。我接受了silverlight v3来自Jeff Wilcox的网站。但在该版本中,我没有看到C#er在本页中写道的[Asynchronous]标记,[Asynchronous]标记肯定存在于wp7 ci中,它是从同一个源代码编译的。我不再使用Jeff的版本,因为它不支持ci环境。我从NuGet获得了wp7 ci。仍然没有看到[Asynchronous]标签可用。你如何使用wp7 ci测试异步方法?你能给我一个例子吗?在我使用Microsoft.Silverlight.Testing;加入
,我得到了
[异步]
,但我仍然会
任务
定义…
[TestMethod][asynchronous]公共IEnumerable TestAsynchronous()
{
Task
在Silverlight中不存在。我正在写一篇关于如何使用
IObservable
编写异步测试的博客文章,其中将介绍异步测试的主题。完成后我将发布一个链接。