我想为我的 Windows Phone 7 应用程序运行单元测试和集成测试。但是 jeff wilcox 提供的库和来自 http://smartypantscoding.com/a-cheat-sheet-for-unit-testing-silverlight-apps-on-windows-phone-7 的代码通过模拟器运行。
但我想以与任何 Windows 应用程序运行相同的方式运行单个测试,例如通过右键单击测试类中的单个测试......如果 soemone 想要通过命令行运行测试而不调用 sdk。
但是目前可用的单元测试框架是通过模拟器运行的。
最佳答案
通过良好的关注点分离和一些限制,您可以使用 Silverlight 运行时执行测试。配置完成后,您可以使用 ReSharper+ 运行测试 AgUnit或 VS 中的 TestDriven.net 和 Statlight从命令行。
您可以在 blog post I wrote up 上阅读有关设置说明的信息但为了保留有关 SO 的信息,我将在此处进行总结:
引用 Microsoft.Silverlight.Testing
和Microsoft.VisualStudio.QualityTools.UnitTesting.Silverlight
来自 Silverlight(不是 WP)工具包<- 从
%programfiles%\Reference Assemblies\Microsoft\Framework\Silverlight\v4.0\Profile\WindowsPhone71
引用程序集并将Copy Local
设置为true
限制包括:
- 您的测试程序集不能引用手机特定的程序集或类型(如
Microsoft.Phone.*
) - 一些共享的 API 实际上是不同的
如果您可以处理所有这些(我还没有决定它是否值得),它可以提供一个非常快的测试周期,并且仍然可以对任何超出限制的内容运行模拟器内测试。
我们真正需要的是模拟器支持快速、 headless 模式(模拟器内测试更兼容)和某种 Gallio适配器。
关于.net - 为 wp7 应用程序运行测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9063425/