3

我有一个 Windows phone 7.1 应用程序,我正在尝试使用 Expensify 的 WP7Test 框架和 SpecFlow 的 Gherkin 功能实现 som UI 测试。我在测试我的应用程序在第一次运行时是否正确启动时遇到了真正的麻烦,因为我在显示主屏幕之前用 MessageBox 提示用户访问 GPS 和 Internet。首先,这段代码(相当粗略地)在“App”类构造函数中——我尝试将它移动到 MainPage 的“OnNavigatedTo”方法,结果相同。

 Trace:->Command timed out waiting for send              
 Trace:->Command timed out waiting for send              
 Trace:->Command timed out waiting for send              
 Trace:->Command timed out waiting for send              
 Trace:->Command timed out waiting for send              
 Trace:->Command timed out waiting for send              
 Trace:->Command timed out waiting for send              
 -> error:   App is not yet alive

当我将消息框注释掉时,它工作得很好,但我也真的想测试它们——我的 MainPage 会根据这些提示的答案呈现!

我在场景中尝试了很多不同的步骤来启动应用程序:

Given my app is clean installed and running    /
Given my app is running within 20 seconds      /
Then my app is running                        /
4

1 回答 1

1

因为测试框架与 ui 元素交互,所以它必须使用 ui 线程 - 所以我猜你的 messagebox 在这里以某种方式阻塞了 ui 消息泵。

也许这种情况是在这里引起的,因为这是您的第一页......但我需要做一些测试来检查。

一种简单的解决方法可能是为您的功能使用异步消息框方法 - 但这需要您稍微重新组织页面初始化功能。


如果这对您来说是一个严重的问题,请在 github 中记录问题和示例测试。

于 2012-06-09T17:58:10.247 回答