2015-10-30 36 views
1

我刚开始使用Microsoft Test Manager 2015并构建两个测试用例。测试运行程序在重放期间找不到控件

第一个涉及点击托盘图标,并从那里选择一个条目 - 工作正常。

第二种情况有点复杂,我想在WPF窗口中填写一个表单并单击一些按钮。

录音没有问题,但重播根本不起作用。它应该从选择TabItem开始,选择位于上一个选定TabItem内的另一个TabItem,然后填写文本字段并按下按钮并确认两个消息对话框。

问题是,TestRunner无法找到我的任何控件。即使我选择了正确的TabItem,并尝试执行其中一个“在此处输入someText”的步骤,也需要一些时间,然后在我的脸上抛出一个异常,大致翻译为,所选步骤的重播不能因为找不到匹配搜索属性(?)的控件而被完成。然后按照列表:

TechnologyName: 'UIA' 
FrameworkId: 'WPF' 
ControlType: 'TabPage' 
AutomationId: 'sometabname' 

所有这些都是正确的。如果我尝试执行不同的测试步骤,它说基本上是相同的事情,但不是'ControlType:TabPage'它说'ControlType:Edit'。

我不知道如何从这里开始。我做了一些搜索,但我能找到的所有问题都是关于UIAutomation配置/设置的问题,但据我所知,我无法直接影响/控制MTM。

编辑

简化了测试“案件”后(只是单击被直接放置在窗口/第一格栅中止按钮)和编辑mtm.exe.config文件和启用跟踪/记录我得到这个出了相应的日志文件:

mtm.exe, Playback - [WARNING] Internal warning: Target element "[UIA]FrameworkId='WPF' && ControlType='Button' && AutomationId='closeWithoutSave'" was not found, so all intermediate elements were ignored. An incorrect element that matches target element Id can be found as the result. Verify that all intermediate elements in QueryId have valid and unique Ids 
mtm.exe, Playback - [WARNING] Internal warning: Search failure: [UIA]FrameworkId='WPF' && ControlType='Button' && AutomationId='closeWithoutSave' | Performed (4) searches, UI element not found 
mtm.exe, Playback - {1} [FAILED] Function ElementFetcher::FindScreenElement failed to locate UI element (;[UIA]FrameworkId='WPF' && ControlType='Button' && AutomationId='closeWithoutSave') (Das angegebene Objekt wurde nicht gefunden.) 

什么是奇怪这里的是,我甚至设置Automation.AutomationID那个按钮,它还是失败了。另外我不确定这是否正确,但搜索似乎没有包含具有该按钮的窗口的名称/自动化ID。因为我在那个时候在应用程序中打开了两个窗口,所以我可以想象这是问题所在。

回答

1

我检查了由MTM生成的UI测试,将其加载到编码的UI测试项目中。我打开了UI控制图,看到有什么错误:

TabControl/TabPage导航与TrayIcon的ContextMenu分组在同一个窗口中。

原因是,代替使用WPF窗口的Name属性,MTM /编码的UI测试使用Title属性作为Window(wtf?)的标识符。

解决方案:

我的WPF配置窗口的标题属性设置为Configuration和重做受影响的测试步骤解决了这个问题。

提示人与一个类似的问题:这也可能有助于提高在mtm.exe.config文件位于您的Visual Studio安装文件夹的Common7\IDEMaxLevelsForItemContainer值。

相关问题