0

這可能有點瘋狂/堅果,但有沒有什麼辦法可以在不使用MS自動化對等框架的情況下執行WPF自動測試?沒有自動化框架的WPF自動化測試?

有幾次,當我實際上需要的UIElement/FrameworkElement,並且想直接訪問它。我正在研究Snoop試圖處理它,但它看起來像「注入」一個過程有點痛苦。我已經嘗試連接到啓動的進程(我們目前使用SpecFlow),但任何嘗試編組進程或窗口線程(我已經找到實際的窗口的進程ID並嘗試連接)結果在HwndSource中爲null。我試圖在單元測試中創建應用程序的一個實例,但它看起來像NUnit在後臺啓動應用程序時(即使在STA線程上),因爲第二個測試開始嘗試加載,應用程序開始阻止。

有沒有人在做別的事情上有成功?我現在唯一想要「解決」這個問題的想法是創建一個特殊的AutomationPeer,我可以反思,然後獲取FrameworkElement,或者類似的東西。

有什麼想法?

回答

1

不,沒有任何東西可以封裝跨過程的WPF元素(特別是底層本地元素,如圖形資源,圖像等),並且UI Automation根據定義跨過程工作。

如果您擁有目標應用程序,如果您爲您的應用程序創建特定的AutomationPeers,則可以顯着提高其「UIAutomationness」。

否則,窺探方法(流程注入)是唯一的方法(但有很多缺點,包括安全問題)。

0

如果是這樣的話:

任何方式不使用MS自動化同級框架執行WPF自動化測試?

你可以使用Telerik's Testing Studio,它很豐富,並有一些編碼,你會習慣它。另外還有一個好處documentation以及他們可以提供的幫助。

說實話,我花了一段時間,但由於框架是免費的,我終於決定通過MS選擇使用它。