Windows Phone 单元测试现状

2024-01-07

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

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

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

由于我想将这个问题作为其他人寻找相同问题的资源,因此我希望避免以下问题的答案:

  • 不完整或废弃项目的开源端口
  • 仅作为某人博客上的附件提供的项目

我还想进行完整的 BDD 风格的验收测试,但是这完全是另一个问题 https://stackoverflow.com/questions/5990067/how-can-i-obtain-an-automationelement-reference-to-an-application-running-in-the.


我将此答案添加为社区 Wiki,以便其他人可以对其进行修改以保持最新。

单元测试

意图:通常从 IDE 和持续集成服务器运行隔离(无电话功能)、快速执行的测试,而不需要模拟器(例如 TDD 视图模型)

我在许多演示中看到推荐的方法涉及引用 .NET 4 项目中的源文件并针对这些文件运行测试(引用程序集的桌面等效项)。如果您的代码不使用任何与桌面 BCL 不同的 APIand您可以处理使参考项目保持最新(不会自动添加新文件),这应该足够了。

否则,您可以按照以下步骤在桌面 CLR 中执行引用 WP7 程序集的代码:

  1. 添加测试 Silverlight 4 类库(不是 Silverlight适用于 Windows 手机项目)到您的解决方案
  2. 在类库中,设置Copy Local所有框架参考除了 mscorlib(基本上是 System.* 和 Microsoft.*)true
  3. 添加此测试库的引用到NUnit.Silverlight.Framework.dll and NUnit.Silverlight.Compatibility.dll来自NUnit-Silverlight 项目 http://code.google.com/p/nunit-silverlight/
  4. 将测试库中的引用添加到您的主 Windows Phone 项目中,忽略版本警告。
  5. 使用 ReSharper(已测试)或 TestDriven.NET 在 IDE 中运行测试
  6. 使用标准 .NET 2.0 从命令行运行测试nunit-console.exe来自最新 NUnit 版本 http://nunit.org/index.php?p=download,传入/framework=v4.0.

(上面的许多解决方法都是必需的,因为 WP7 使用 SL3。一旦 Mango 与 SL4 运行时一起发布,它应该是一个更干净的设置)

集成测试

意图:在模拟器上按需和 CI 服务器上运行与代码外部资源(例如电话功能和 Web 服务)交互的长时间运行的测试

UPDATEWindows Phone 8 应用程序单元测试将在 Visual Studio 2012 Update 2 中得到正式支持 http://blogs.msdn.com/b/visualstudioalm/archive/2013/01/31/windows-phone-unit-tests-in-visual-studio-2012-update-2.aspx,包括 VS 集成和命令行支持。这些测试在模拟器中运行,因此我将其包含在集成测试下。

Silverlight 测试框架的 WP7 端口当前不支持此功能(并且只能从博客下载)。

与此同时,我创建了一个代码复合体项目 http://wp7ci.codeplex.com/添加一个 MSBuild 任务,该任务启动模拟器并将结果整理到 XML 文件中。最简单的安装方法是添加wp7-ci NuGet包 http://nuget.org/List/Packages/WP7-CI.

注意:在 Windows Server 上安装 WP7 SDK需要修改安装程序配置 http://blogs.msdn.com/b/astebner/archive/2010/05/02/10005980.aspx并且不受支持,但运行良好。

验收/系统测试

目的:运行端到端自动化测试,与模拟器上的手机 UI 进行交互(按需或在 CI 服务器上)

Expensify's(对 SEO 来说名字不好)Windows Phone 测试框架 https://github.com/Expensify/WindowsPhoneTestFramework支持使用 SpecFlow 从主机 PC 编写 UI 自动化测试。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Windows Phone 单元测试现状 的相关文章

  • 在 Windows Phone 8 中设置广告

    我发现了一些对类似问题的零散回复 主要是 Windows Phone 7 但我想发布一个包含 Windows Phone 8 广告的所有要求的答案 我在 Windows Phone 8 中设置广告时遇到了一些问题 每次运行模拟器时 我都会遇
  • Jenkins + Cmake + JIRA = 多个相互依赖项目的 CI?

    我们的系统中有许多小项目在 Linux 上运行 Slackware 7 11 正在慢慢迁移到 RHEL 6 0 大约 50 100 个应用程序和 15 20 个库 我们几乎所有的应用程序都使用我们的一个或多个库 我们的源树看起来像这样 ap
  • 检查 docker 在 Gitlab CICD 管道中运行

    我在用着亚搏体育appGitlab CI CD https docs gitlab com ee ci README html构建 Node 服务器的 Docker 镜像 我想知道是否有办法测试它docker run图像的质量还可以 我们很
  • 如何测试抽象类的受保护抽象方法?

    我一直在研究测试名为的抽象类的最佳方法TabsActionFilter 我保证继承自的类TabsActionFilter将有一个名为GetCustomer 在实践中 这种设计似乎效果很好 我遇到的一些问题是弄清楚如何测试OnActionEx
  • 如何仅在 PR 上触发构建,而不是在合并后在 Azure 管道上触发构建?

    这是向pyjanitor project https github com ericmjl pyjanitor 我已经构建了分为多个作业的管道 并且这些作业被设计为并行运行 但是 我注意到即使在合并 PR 后也会触发构建 因此 我的问题有两
  • Jenkins - Xcode 构建工作协同设计失败

    下面是我的构建脚本 不使用 xcodebuild 插件 构建步骤工程 我使用所需的证书和私钥创建了一个单独的钥匙串 它们在钥匙串访问中可见 脚本中的钥匙串命令不会失败 安全列表钥匙串将这些显示为有效的钥匙串 它的表现就像解锁命令并未真正成功
  • Azure DevOps 中的条件构建解决方案

    I am working on a large scale application which uses multiple small small project solutions Each solution is built in th
  • 以编程方式更改应用栏图标

    在我的 C Windows Phone 8 应用程序中 我有一个 AppBar 我的这个 AppBar 上有两个图标 一个是新图标 一个是编辑图标 我想将编辑图标更改为每当按下时返回图标 然后每当再次按下时返回编辑图标 我已经尝试过这段代码
  • jQuery Mobile 中的页面高度不正确

    我正在使用 jQuery Mobile 1 2 0 开发一个 Web 应用程序 并且在 iOS 和 Android 上正确计算页面高度 但在 Windows Phone 上则不然 它在页面底部有一个间隙 知道如何修复它吗 最好只使用 CSS
  • 如何在WP7 WebBrowser控件中注入Javascript?

    我可以通过此链接将 JavaScript 注入到 C Windows 窗体中的 WebBrowser 控件中 如何在WebBrowser控件中注入JavaScript https stackoverflow com questions 15
  • 在 TFS 2012 中使用持续集成进行自动部署

    我已经为 WCF 项目设置了持续集成 并希望使用 MSBuild 参数自动将应用程序部署到远程服务器 但它没有部署 运行新的构建时 所有测试都会通过并且所有项目都会构建 但网站尚未部署 另外 我没有从构建中收到任何错误 表明出现了任何问题
  • 重置 Windows Phone 照片上传

    我正在尝试使用 RestSharp 将照片上传到 Windows Phone 7 应用程序中的 REST api 进行获取 发布 post参数如下 photo 照片 编码为多部分 表单数据 照片 相册 id 现有相册的标识符 可以是一个事件
  • 多个事件处理程序触发,为什么?

    我很难解决这个问题 我已经呆了三个小时了 但我仍然不明白为什么会这样 这是代码 private void Catagory SelectionChanged object sender SelectionChangedEventArgs e
  • 让 hudson 将源签出到特定目录

    这似乎是一个简单的任务 但在我的一生中 我无法让 Hudson 将我的源代码签出到特定目录 我可以在命令行上使用 svn 查看源代码 我尝试在源代码管理下指定本地模块设置 但没有骰子 我将其设置为 c source trunk 并在运行构建
  • Jenkins:在管道 Jenkins 文件内执行 AWS CLI 命令

    您知道如何在 aws 中执行 AWS CLI 命令吗 Jenkinsfile为了建立管道 我没有找到任何插件 首先 您需要在服务器上安装 aws cli 并确保 jenkins 用户有权运行它 或者在创建 EC2 实例时简单地使用 Amaz
  • 测试 Python 脚本

    如何使用 doctest unittest nose 等测试框架测试 Python 脚本的 STDOUT 输出 例如 假设运行我的脚本 todo py list 应该返回 取出垃圾 我读过有人将脚本的 STDOUT 打印部分与生成要打印的输
  • 如何获取 Windows Phone 7 的 useragent 字符串?

    我需要获取手机的用户代理字符串 但我在 API 中没有找到任何允许这样做的内容 我遇到过以下两篇描述用户代理字符串格式的博客文章 http blogs msdn com b iemobile archive 2010 03 25 ladie
  • Python 是否有首选的 BDD 风格单元测试框架?

    我想知道是否有任何 BDD 风格的 描述它 Python 单元测试框架可以维护并准备好投入生产 我已经发现describe https pypi python org pypi describe 0 1 2 但似乎没有维护 也没有文档 我也
  • 如何保持 Subversion 和远程服务器(通过 FTP)同步?

    我们很难保持 Subversion 和 FTP 同步 有时我们忘记提交更改并只是将它们推送到 Web 服务器 我们的 svn 文件夹分散在整个 Web 服务器中 有些东西存在于一个地方而不存在于另一个地方 等等 今天我想花点时间解决这个问题
  • 将事件绑定到 ItemsControl 中的按钮

    我有一个 Windows Phone 7 应用程序 其中包含一些 xaml 如下所示

随机推荐

  • android在对话框中加载webview [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我想在我的 webview 中打开 twitter auth 而不是在浏览器中打开 有什么好的教程如何在
  • 用 Beautiful Soup 解析 XML

    编辑 已解决 我想我应该在底部添加我的答案 注意 所需的输出是一堆像 US D0591026 我的 XML 数据如下所示
  • 比较两个 C 风格字符串的正确函数是什么?

    所以我陷入了两难的境地 我需要比较两个 C 风格的字符串 并搜索了最合适的函数 memcmp Compare two blocks of memory function strcmp Compare two strings function
  • 使用免费的第三方 dll 将 word 转换为 pdf

    我想将word文档转换为pdf 我找到了很多使用 Office dll 的解决方案 但我想要一个使用免费第三方dll的解决方案 因为在office dll中必须安装office 所以我的服务器上没有安装office 有没有免费的第三方dll
  • 将组合变音符号转换为简单 utf

    由于某些编码问题 我在将字符串插入数据库时 遇到问题 字符串源是外部 rss 提要 在网络浏览器中看起来没问题 即使在调试器中 文本也看起来没问题 如果我将strong复制到记事本中 结果也可以 但在记事本 中可以看到字符串正在使用组合字符
  • 如何从 Android 调用 PHP 函数?

    我想调用服务器上的特定 php 函数并发送一些参数 到目前为止 我实现了可以使用 HttpClient 打开 php 文件并执行数据传输到 Json 并在我的应用程序中显示 那么 现在我希望能够调用特定函数并向其发送参数 我该怎么做 抱歉
  • Oracle 和分页

    在 MySql 中 分页的概念可以通过使用单个 SQL 语句轻松实现LIMIT子句类似于以下内容 SELECT country id country name FROM country c ORDER BY country id DESC
  • 无法使用 MongoEngine Pymongo 和 Django 返回 JSON 对象?

    所以我试图返回一个项目的 JSON 对象 我花了几个小时试图让 Django 返回 JSON 这是我们一直在研究的观点 def json request first name user User objects all user User
  • ASP.NET MVC AJAX 与 HTML.ValidationMessageFor

    我习惯使用 ASP NET Webforms 通过 UpdatePanels 执行 AJAX 的简单方法 我知道这个过程对于 MVC 来说更加手工 在特定情况下 我使用数据注释来验证某些表单输入 我使用 HTML ValidationMes
  • 如何全局更改Swing JTextFields的ActionMap?

    我想通过用我的自定义实现替换一些操作来更改整个应用程序中 Swing JTextFields 的 ActionMap 关于原因的解释可以参考以下帖子 如何使 JTextComponent 的插入符跳过选定的文本 https stackove
  • 如何在悬停时反转转换?

    我可以通过 CSS 反转悬停时的过渡动画吗 当我将鼠标悬停在 菜单 文本上时 我需要滑动到右侧蓝线 并在 400 毫秒延迟后从左侧灰线滑动 是否可以 menu display inline block position relative f
  • 是否有像 phpMyAdmin 这样的工具可以配置为仅访问单个数据库? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 是否有像 phpMyAdmin 这样的工具可以配置为仅访问服务器中的单个 MySQL 数据库 我无法使
  • Bootstrap Dropdown 在 React 中不起作用

    我从引导下拉列表中添加了一个用于 React 的下拉按钮 但它不起作用并显示为普通按钮 你能给我一个解决方案吗 div div
  • Ajax.BeginForm 指定“GET”类型发帖

    我的看法如下 Scripts jquery unobtrusive ajax js type text javascript gt Scripts jquery validate js type text javascript gt Scr
  • 我应该使用 DTO 作为 MVVM 中的数据模型吗?

    我目前正在研究我第一次真正尝试使用 MVVM 并且一直在阅读各种关于如何最好地实现它的文章 我当前的想法是有效地使用我的数据模型作为数据传输对象 使它们可序列化并让它们同时存在于客户端和服务器端 这似乎是一个合乎逻辑的步骤 因为这两种对象类
  • Rails 3.1:无法在添加它的同一迁移中写入列

    我有一个可以正常运行的 add column 迁移 然而 在运行它并启动控制台后 我会发现first name和last name列完全为空 我尝试使用save 相反 它具有相同的效果 没有报告错误 这是原文 class UserAddFi
  • 如何在 Sublime Text 3 中运行 python 代码?

    所以我尝试从 Sublime Text 3 运行 python 代码 但我不知道如何运行 即使只是来自控制台 那也没关系 有人知道怎么办吗 工具 gt 构建系统 gt Python 或 Ctrl B
  • 使用实现多个接口预泛型的参数

    假设我有这些接口 public interface I1 void foo public interface I2 void bar 和课程 public class A extends AParent implements I1 I2 c
  • 程序“main.exe”无法运行:指定的可执行文件不是此操作系统平台的有效应用程序

    我正在设置 Visual Studio Code 当我尝试运行 main cpp 执行时为 main exe 时 它显示了上述错误 根据我在网上读到的有关该问题的信息 我认为这是因为 c cpp properties json 文件中写入错
  • Windows Phone 单元测试现状

    我一直在将我的 Google Fu 推向极限 试图找到最推荐 稳定的设置来为 Windows Phone 应用程序执行 TDD CI 成功做到这一点的人能给我指出正确的方向吗 这是我想要做的 如果可能的话 为不需要电话功能的视图模型和应用程