繁体   English   中英

没有自动化框架的WPF自动化测试?

[英]WPF Automation Testing without Automation Framework?

这可能有点疯狂/疯狂,但是有什么方法可以在不使用MS Automation Peer框架的情况下执行WPF自动化测试?

有几次我实际上需要 UIElement / FrameworkElement并想直接访问它。 我一直在寻找Snoop来尝试处理它,但是将其“注入”到流程中似乎有些痛苦。

我已经尝试连接到已启动的进程(我们目前正在使用SpecFlow),但是任何尝试编组Process或Window线程(我一直在寻找实际Window的proc ID并尝试连接)都会导致null HwndSource。 我还尝试在单元测试中创建应用程序的实例,但是NUnit似乎在后台(即使在STA Thread上)启动应用程序时遇到问题,因为第二个测试开始尝试加载应用程序开始阻止。

有人在做其他事情上有成功吗? 我现在要“解决”问题的唯一想法是创建一个特殊的AutomationPeer,我可以将其反映到该对象上,然后从中获取FrameworkElement或类似的东西。

有什么想法吗?

不,没有什么可以封送跨流程的WPF元素(尤其是底层的本机元素,例如图形资源,图像等),并且UI Automation根据定义跨流程工作。

如果您拥有目标应用程序,并且为应用程序创建了AutomationPeers,则可以大大提高其“ UIAutomation-ness”。

否则,侦听方式(进程注入)是唯一的方式(但是有很多缺点,包括安全性问题)。

如果是这种情况:

没有使用MS Automation Peer框架执行WPF自动化测试的任何方法?

您可以使用Telerik的Testing Studio ,它功能丰富,并且通过一些编码就可以使用它。 他们的另一个优点是他们提供了很好的文档和帮助。

老实说,这花了我一段时间,但是由于该框架是免费的,因此我最终决定在MS替代方案上使用它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM