【发布时间】:2015-05-21 14:40:21
【问题描述】:
这可能有点疯狂/疯狂,但是有什么方法可以在不使用 MS 自动化对等框架的情况下执行 WPF 自动化测试?
有好几次我实际上需要 UIElement/FrameworkElement 并且想直接访问它。我正在研究 Snoop 以尝试处理它,但看起来“注入”到进程中有点痛苦。
我已经尝试连接到启动的进程(我们目前正在使用 SpecFlow),但是任何编组进程或窗口线程的尝试(我已经查找了实际的 Window 的 proc ID 并尝试连接)都会导致来自 HwndSource 的空值。我还试图在我的单元测试中创建应用程序的实例,但看起来 NUnit 在后台启动应用程序(甚至在 STA 线程上)时存在问题,因为第二个测试开始尝试加载应用程序开始阻塞。
有没有人在做其他事情上取得过成功?我现在“解决”问题的唯一想法是创建一个特殊的 AutomationPeer,我可以对其进行反射,然后从中获取 FrameworkElement,或类似的东西。
有什么想法吗?
【问题讨论】:
标签: c# wpf integration-testing ui-automation microsoft-ui-automation