编码的UI测试 - 等待测试期间运行的应用程序完成

时间:2014-08-14 12:40:51

标签: visual-studio-2012 coded-ui-tests gui-testing window-handles

我正在尝试使用带有Visual Studio Ultimate 2012的编码的ui测试为我的应用程序创建测试,在我的应用程序中运行另一个应用程序(cmd窗口在&#34期间打开;另一个应用程序& #34;跑步)。 我想等到这个"另一个应用程序"完成运行然后检查一些结果。 我怎样才能做到这一点?

如果有人知道如何使用编码的ui测试来控制窗口,我认为它可能有所帮助,直到现在我还没有找到一个例子!

2 个答案:

答案 0 :(得分:0)

  1. 像@AdrianHHH建议的那样尝试UIMap.AnotherAppUIWindow.WaitForControlNotExist();只需使用正确的元素
  2. 添加该行代码即可
  3. 在try-catch中抛出“while”并等待,捕获正在抛出的异常,例如找不到元素异常

    Try
    {
        while(UIMap.AnotherAppUIWindow.Exists)
        {
           //Do nothing
        }
    
    }catch(Exception)
    {
       //Window no longer exists
    }
    

答案 1 :(得分:0)

我找到了办法。

我的问题是控制并等待与另一个应用程序相关的cmd窗口"执行。

我运行系统和VS录像机,并在另一个应用程序的cmd窗口弹出时开始录制然后我最大化窗口并停止录制,我这样做是为了获得自动生成的代码来控制这个窗口,代码我得到:

    public void WaitUntilAnotherappFinish()
    {
        #region Variable Declarations
        WinWindow uIAnotherppWindow = this.UIAnotherappWindow
        #endregion

        // Maximize window 
        uIAnotherppWindow.Maximized = this.WaitUntilAnotherappFinishParams.UIAnotherappWindowMaximized;
    }

所以我将最大化窗口命令行替换为等待窗口不存在:

    public void WaitUntilAnotherappFinish()
    {
        #region Variable Declarations
        WinWindow uIAnotherppWindow = this.UIAnotherappWindow
        #endregion

        // wait for window to close 
        uIAnotherppWindow.WaitForControlNotExist();
    }

这完全符合我的要求:)。

重要说明: 请注意,此文件是自动生成的文件,因此您的更改可能会撤消!通过在测试文件中实现自己的方法来解决这个问题。