VS10中的Silverlight单元测试集成?

Der*_*avi 7 silverlight resharper unit-testing mvvm visual-studio-2010

我目前正在使用Silverlight单元测试框架,但我更喜欢直接在VS2010中运行测试.我很想知道其他人使用的方法和工具.

我正在使用带有Prism的Silverlight 4和MVVM模式,我对VS 2010中集成的Silverlight单元测试支持特别感兴趣,我可以使用我的ViewModel单元测试.我正在使用Unity的依赖注入,我正在使用Moq for Silverlight模拟我的WCF层中的调用来编写单元测试.我目前甚至没有查看集成测试,但即使在测试单个ViewModel命令的简单单元测试中,对我的模拟服务层的服务请求也可能需要大约50毫秒.因此,对异步测试的支持对我很重要.

我在这里提出的问题与View测试没有关系,我在过去使用System.Windows.Automation.Peers处理过一些成功,并且 - 尽管我还没有使用它 - 现在可能更容易处理VS 2010 Feature Pack 2中的支持(似乎是针对我收集的UI测试的自动化/回放).

我应该提一下,我迄今为止所看到和使用的产品的调查结果如下:

  • Silverlight单元测试框架 - 我目前使用它,它的功能很棒,但它的局限性是(a)它没有与Visual Studio集成; (b)如果您不想运行所有测试,则仅限于粗标记表达式过滤器.
  • StatLight - 非常好.我目前使用这个,并且在上一个项目中以Silverlight 3为目标时从v0.9开始使用它.作为命令行工具,它可以与持续集成服务器集成 - 这当然可以处理另一个必需的场景.但在开发过程中,它在Visual Studio集成方面没有任何用处.
  • Silverlight的单元测试结果查看器(Visual Studio库中的Visual Studio扩展)看起来很有前景,但其局限性是(a)目前无法找到位于解决方案文件夹中的项目,而不是在解决方案根目录下; (b)在给定的程序集中运行所有测试(通过StatLight),没有明显的能力运行特定的测试或选择的测试.
  • Einar Ingebrigtsen的ReSharper的Silverlight单元测试赛跑者,后来成为奥丁 - 在比赛之前(它首次出现在2008年),但是限制是看起来该项目不再维护(最近的更新是2009年4月).
  • AgUnit ReSharper插件(http://agunit.codeplex.com/) - 最初看起来很棒.在为其下载源代码并构建最新(错误修复)版本以对抗ReSharper 5.1之后,我非常受鼓舞.但不幸的是它不处理异步测试.这是线程的设计限制,因此无论您是尝试使用Silverlight单元测试框架(Microsoft.Silverliht.Testing.SilverlightTest基类)中内置的异步支持,还是使用AutoResetEvent或还要别的吗.关于CodePlex的项目讨论论坛的协调员已经注意到了这一点.这是一个巨大的限制.
  • TestDriven.NET 3.0 - 乍一看似乎支持Silverlight 4.0测试,但限制(我怀疑)是Silverlight 4"程序集可移植性"(即可在SL4和.NET 4之间移植的5个依赖程序集).当然,当我尝试使用简单的POC时,它崩溃了我的VS 2010实例.

也许我在这里错过了一些东西 - 我想知道社区中是否有人对Silverlight单元测试有任何更好的想法?

Rob*_*sor 2

我使用 Silverlight 单元测试框架、AgUnit 和 RX 以及模拟 IScheduler 提供程序来使我的单元测试成为单线程:)

  • 我也对 silverlight 中的单元测试故事感到非常难过。Jetbrains 应该介入:) (2认同)