gpt4 book ai didi

windows-phone-7 - Windows Phone 的单元测试状态

转载 作者:行者123 更新时间:2023-12-03 12:48:22 26 4
gpt4 key购买 nike

我一直在将我的 Google Fu 推向极限,试图找到最推荐/最稳定的设置来为 Windows Phone 应用程序执行 TDD + CI。任何成功地做到这一点的人都可以为我指明正确的方向吗?

这是我想要做的(如果可能的话):

  • 为不需要电话功能的 View 模型和应用程序服务编写单元测试
  • 通过 Resharper 或 TD.NET
  • 在 Visual Studio 中直接执行测试
  • 从带有 XML 输出的命令行执行单元测试,而不启动模拟器
  • 最好对 SDK 更新有弹性(就第三方库而言)

  • 由于我想将此问题作为其他人寻找相同事物的资源,因此这是我希望避免的答案:
  • 不完整或废弃的项目的开源端口
  • 仅在某人的博客上作为附件提供的项目

  • 我还想进行完整的 BDD 式验收测试,但是 that's another issue entirely .

    最佳答案

    我将此答案添加为社区 Wiki,以便其他人可以对其进行修改以使其保持最新。
    单元测试
    意图:运行隔离(没有电话功能),通常从 IDE 和持续集成服务器快速执行测试,而不需要模拟器(例如 TDD View 模型)
    我在许多演示文稿中看到的推荐方法涉及在 .NET 4 项目中引用您的源文件并针对这些文件运行测试(引用程序集的桌面等效项)。如果您的代码不使用与桌面 BCL 不同的任何 API,并且您可以处理使引用项目保持最新(不会自动添加新文件)的问题,那么这就足够了。
    否则,您可以按照以下步骤在桌面 CLR 中执行引用 WP7 程序集的代码:

  • 将测试 Silverlight 4 类库(不是用于 Windows Phone 项目的 Silverlight)添加到您的解决方案
  • 在类库中,设置 Copy Local对于所有框架引用 除了 mscorelib (基本上是 System.* 和 Microsoft.*)到 true
  • 将此测试库中的引用添加到 NUnit.Silverlight.Framework.dllNUnit.Silverlight.Compatibility.dll来自 NUnit-Silverlight project
  • 将测试库中的引用添加到您的主 Windows Phone 项目,忽略版本警告。
  • 使用 ReSharper(已测试)或 TestDriven.NET
  • 在 IDE 中运行测试
  • 使用标准 .NET 2.0 nunit-console.exe 从命令行运行测试来自 latest NUnit release , 传入 /framework=v4.0 .

  • (由于 WP7 使用 SL3,因此需要上述许多解决方法。一旦 Mango 与 SL4 运行时一起发布,它应该是一个更干净的设置)
    集成测试
    意图:在模拟器上按需和 CI 服务器上运行与代码外部资源(如电话功能和 Web 服务)交互的更长时间运行的测试
    更新 单元测试 Windows Phone 8 应用程序 will be official supported in Visual Studio 2012 Update 2 ,包括 VS 集成和命令行支持。这些测试在模拟器中运行,因此我将其包含在集成测试中。
    Silverlight 测试框架的 WP7 端口当前不支持此功能(并且仅作为从博客下载的版本提供)。
    同时,我创建了一个 codeplex project添加一个 MSBuild 任务,该任务启动模拟器并将结果整理到 XML 文件中。最简单的安装方法是添加 wp7-ci NuGet package .
    注意:在 Windows 服务器上安装 WP7 SDK requires modifying the installer configuration并且不受支持,但效果很好。
    验收/系统测试
    意图:在模拟器上运行与手机 UI 交互的端到端自动化测试,无论是按需还是在 CI 服务器上
    Expensify 的(对于 SEO 来说名字不好) Windows Phone Test Framework支持使用 SpecFlow 从主机 PC 编写 UI 自动化测试。

    关于windows-phone-7 - Windows Phone 的单元测试状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5994672/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com