Ric*_*lay 19 tdd continuous-integration windows-phone-7 windows-phone
我一直在推动我的Google Fu达到极限,试图为Windows Phone应用程序找到最推荐/稳定的TDD + CI设置.任何成功做过这件事的人都可以指出我正确的方向吗?
这是我想要做的(如果可能的话):
既然我想把这个问题作为一个资源给其他人寻找同样的东西,这就是我希望避免的答案:
我也想进行完整的BDD式验收测试,但这完全是另一个问题.
Ric*_*lay 14
我将此答案添加为社区Wiki,以便其他人可以对其进行修改以使其保持最新状态.
意图:运行隔离(无电话功能),快速执行测试,通常来自IDE和Continuous Integration服务器,无需仿真器(例如TDD View Models)
我在许多演示文稿中看到的方法涉及在.NET 4项目中引用源文件并针对这些文件运行测试(引用程序集的桌面等效项).如果您的代码不使用任何与桌面BCL不同的API,并且您可以处理保持参考项目是最新的(新文件不会自动添加),那么这应该足够了.
否则,您可以按照以下步骤执行引用桌面CLR中的WP7程序集的代码:
Copy Local为除mscorelib(基本上是System.*和Microsoft.*)之外的所有框架引用设置trueNUnit.Silverlight.Framework.dll并NUnit.Silverlight.Compatibility.dll从NUnit的,Silverlight项目nunit-console.exe从最新NUnit的释放,传递/framework=v4.0.(上面的许多解决方法都是必需的,因为WP7使用SL3.一旦Mango与SL4运行时一起发布,它应该是一个更清洁的设置)
意图:运行更长时间运行的测试,这些测试与模拟器上的代码外部资源(如电话功能和Web服务)交互,无论是按需还是在CI服务器上
更新单元测试Windows Phone 8应用程序将在Visual Studio 2012 Update 2中得到官方支持,包括VS集成和命令行支持.这些测试在模拟器中运行,因此我将其包含在Integration Tests下.
目前Silverlight测试框架的WP7端口不支持此功能(并且只能从博客下载).
与此同时,我创建了一个codeplex项目,它添加了一个MSBuild任务,用于启动模拟器并将结果整理到XML文件中.最简单的方法安装是添加wp7-ci NuGet包.
注意:在Windows Server上安装WP7 SDK 需要修改安装程序配置,但不受支持,但效果很好.
意图:根据需要或在CI服务器上运行与模拟器上的手机UI交互的端到端自动化测试
Expensify(以SEO命名不佳)Windows Phone Test Framework支持使用SpecFlow从主机PC编写UI自动化测试.