【发布时间】:2012-06-19 06:53:16
【问题描述】:
我们有一个已经开发并准备好部署的 Metro 应用程序。但我们对迄今为止所做的测试仍然不满意。我们的目标是在应用程序代码中编写一些内联测试代码,旨在暴露应用程序中的某些关键事件,(通过生成一些测试代码可以等待的事件)并等待测试代码生成的事件。这种方式我们可以生成更多场景。
例如,如果有四个组件作为后台线程 A、B、C 和 D 运行并且我们希望 A 执行然后发出信号以测试代码一个事件并等待(仅在后台线程上,同时 UI 线程继续运行)。然后,测试代码模拟一些用户操作并向应用发出信号,应用在该应用上继续执行操作 B 和 C,然后再次等待测试代码再次在 UI 上运行一些测试用例,而后台线程仍处于挂起状态。
这样我们就实现了一个场景 BackgroundThread A->用户事件x->后台线程B->后台线程C->用户事件y->后台线程D
我们希望找到更多由于后台线程而可能出现的同步问题。 这种方法背后的驱动力是我们无法控制线程何时脱离上下文。因此我们希望模拟这样的场景来检查争用区域。我已经尝试了所有基本的 IPC 机制,但由于 Metro 应用沙盒,它们显然无法在 Metro 应用和桌面应用之间工作。
【问题讨论】: