为什么编码的UI测试会引发"无法执行'拖动'关于控制" ?

时间:2016-09-01 16:42:17

标签: c# visual-studio coded-ui-tests

我在标准MFC应用程序上记录拖动操作。在录制之前,我制作了一个可停靠的窗格(如类视图,文件视图)。然后用鼠标拖动它并通过编码的UI构建器记录它。下面是编码的UI构建器生成的代码。我使用的是VS 2012 Ultimate版本。

    public void RecordedMethod29()
    {
        #region Variable Declarations
        WinClient uIClassViewClient = this.UIClassViewWindow.UIClassViewClient;
        #endregion

        // Move 'Class View' client
        //System parameter 'Show window contents while dragging' is not set.This could lead to incorrect recording of drag actions.
        Mouse.StartDragging(uIClassViewClient, new Point(120, -11));
        Mouse.StopDragging(uIClassViewClient, 19, -17);
    }

但是,在重放期间,VS会提高误差。我认为关键信息是"无法执行'拖动'在控制"。有人遇到过这样的问题吗?我不相信编码的UI测试不能在浮动窗口上记录/重放拖动操作。顺便说一句,我还启用了Windows设置"显示窗口内容,同时拖动"在代码注释中提到:"系统参数'拖动时显示窗口内容'未设置。这可能导致拖动操作的错误记录。" 但错误仍然存​​在。

测试名称:CodedUITestMethod1 测试FullName:CodedUITestProject1.CodedUITest1.CodedUITestMethod1 测试源:c:\ Users \ Administrator \ Documents \ Visual Studio 2012 \ Projects \ MFCApplication3 \ CodedUITestProject1 \ CodedUITest1.cs:第27行 测试结果:失败 测试时间:0:00:01.2473599

结果讯息: 测试方法CodedUITestProject1.CodedUITest1.CodedUITestMethod1抛出异常: Microsoft.VisualStudio.TestTools.UITest.Extension.PlaybackFailureException:无法执行'拖动'在控制上。额外细节: TechnologyName:' MSAA' 姓名:'课堂视图' ControlType:'客户'  ---> System.Runtime.InteropServices.COMException:对COM组件的调用返回了错误HRESULT E_FAIL。 结果StackTrace:
在Microsoft.VisualStudio.TestTools.UITest.Playback.Engine.IScreenElement.EnsureVisible(Int32 nEnsureVisibleFlag,Int32 x,Int32 y,IScrollerCallback pScrollerCallback,Int32 nScrollFlag,Int32 nMaximumContainers)    在Microsoft.VisualStudio.TestTools.UITesting.UITestControl.StartDragging(Point relativeCoordinate,MouseButtons按钮,ModifierKeys modifierKeys)  ---内部异常堆栈跟踪结束---     在Microsoft.VisualStudio.TestTools.UITesting.Playback.MapAndThrowComException(COMException innerException,IPlaybackContext context)    在Microsoft.VisualStudio.TestTools.UITesting.Playback.MapAndThrowException(SystemException异常,IPlaybackContext上下文)    在Microsoft.VisualStudio.TestTools.UITesting.Playback.MapAndThrowException(SystemException异常,String actionName,UITestControl uiControl)    在Microsoft.VisualStudio.TestTools.UITesting.UITestControl.StartDragging(Point relativeCoordinate,MouseButtons按钮,ModifierKeys modifierKeys)    在Microsoft.VisualStudio.TestTools.UITesting.UITestActionExecutorCore.StartDragging(UITestControl控件,MouseButtons按钮,ModifierKeys modifierKeys,Point relativeCoordinate)    在Microsoft.VisualStudio.TestTools.UITesting.Mouse.StartDraggingImplementation(UITestControl控件,MouseButtons按钮,ModifierKeys modifierKeys,Point relativeCoordinate)    在Microsoft.VisualStudio.TestTools.UITesting.Mouse。<> c__DisplayClass15.b__14()    在Microsoft.VisualStudio.TestTools.UITesting.CodedUITestMethodInvoker.InvokeMethod [T](Func`1函数,UITestControl控件,Boolean firePlaybackErrorEvent,Boolean logAsAction)    在Microsoft.VisualStudio.TestTools.UITesting.Mouse.StartDragging(UITestControl控件,Point relativeCoordinate,MouseButtons按钮,ModifierKeys modifierKeys)    在Microsoft.VisualStudio.TestTools.UITesting.Mouse.StartDragging(UITestControl控件,Point relativeCoordinate)    在CodedUITestProject1.UIMap.RecordedMethod30()位置c:\ Users \ Administrator \ Documents \ Visual Studio 2012 \ Projects \ MFCApplication3 \ CodedUITestProject1 \ UIMap.Designer.cs:行号657    在CodedUITestProject1.CodedUITest1.CodedUITestMethod1()位置c:\ Users \ Administrator \ Documents \ Visual Studio 2012 \ Projects \ MFCApplication3 \ CodedUITestProject1 \ CodedUITest1.cs:行号29

0 个答案:

没有答案