【问题标题】:WPF Automation Testing without Automation Framework?没有自动化框架的 WPF 自动化测试?
【发布时间】: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


    【解决方案1】:

    不,没有什么可以跨进程编组 WPF 元素(尤其是底层原生元素,例如图形资源、图像等),并且 UI 自动化按照定义跨进程工作。

    如果您拥有目标应用程序,如果您为您的应用程序创建特定的 AutomationPeers,则可以显着增加其“UIAutomation-ness”。

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

    【讨论】:

      【解决方案2】:

      如果是这样的话:

      有什么方法可以在不使用 MS Automation Peer 框架的情况下执行 WPF 自动化测试?

      您可以使用Telerik's Testing Studio,它很丰富,并且通过一些编码您就会习惯它。另一个优点是良好的documentation 以及他们可以提供的帮助。

      说实话,我花了一段时间,但由于框架是免费的,我最终决定使用它而不是 MS 替代品。

      【讨论】:

        猜你喜欢
        • 2012-02-25
        • 1970-01-01
        • 2016-07-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-09-12
        • 2023-02-11
        • 1970-01-01
        相关资源
        最近更新 更多