为wp7应用程序运行测试

时间:2012-01-30 11:49:39

标签: .net silverlight windows-phone-7 testing msbuild

我想为我的Windows Phone 7应用程序运行单元和集成测试。但是由jeff wilcox提供的库和http://smartypantscoding.com/a-cheat-sheet-for-unit-testing-silverlight-apps-on-windows-phone-7的代码通过模拟器运行。

但是我希望以与运行任何Windows应用程序相同的方式运行单独的测试,例如通过右键单击测试类中的各个测试..如果soemone想要通过命令行运行测试而不调用sdk。

但目前可用的单元测试框架是通过模拟器运行的。

3 个答案:

答案 0 :(得分:2)

通过一些良好的关注点分离和一些限制,您可以使用Silverlight运行时执行测试。配置完成后,您可以使用VS中的ReSharper + AgUnit或TestDriven.net以及命令行中的Statlight来运行测试。

您可以在blog post I wrote up上阅读有关设置说明的信息,但为了保留有关SO的信息,我将在此总结:

    来自 Silverlight (非WP)工具包的
  • Reference Microsoft.Silverlight.TestingMicrosoft.VisualStudio.QualityTools.UnitTesting.Silverlight
  • %programfiles%\Reference Assemblies\Microsoft\Framework\Silverlight\v4.0\Profile\WindowsPhone71引用程序集并将Copy Local设置为true

限制包括:

  • 您测试的程序集无法引用特定于手机的程序集或类型(例如Microsoft.Phone.*
  • 某些共享API实际上是不同的

如果你可以处理所有这些(我还没有决定它是否值得)它可以提供一个非常快速的测试周期,并且仍然可以针对超出限制的任何事情运行模拟器内测试。 / p>

我们真正需要的是支持快速无头模式的模拟器(模拟器间测试更兼容)和某种Gallio适配器。

答案 1 :(得分:1)

您必须通过模拟器运行单元测试。故事结束。

答案 2 :(得分:0)

您可以在手机上运行Silverlight单元测试应用,但如果您有WP7.5“芒果”,请确保get the Mango compatible binaries first from Jeff Wilcox's blog

要运行单个测试,请使用“测试标记”功能:在TestClass或TestMethod级别为要运行[Tag("MyTag")]的测试添加标记。然后在测试应用的启动屏幕上的文本框中键入匹配的标记。

这是我发现重新运行测试以快速验证您已获得的修复的最佳方式。我通常会为调试保留一个短标签(例如“e”),因此可以快速输入。