首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >编码UI测试记录新测试覆盖UIMap.Designer.cs更改

编码UI测试记录新测试覆盖UIMap.Designer.cs更改
EN

Stack Overflow用户
提问于 2015-02-17 00:52:36
回答 1查看 422关注 0票数 1

我正在为成功的登录场景录制一个编码的UI测试。在拔出“编码的UI测试生成器”之后,我记录了以下步骤。

  1. 启动执行程序
  2. 点击在页面上触发一些动画的表单,5-6秒后,我可以选择“注册”或“登录”。
  3. 我点击‘登录’(UILoginButton)按钮,并成功登录。

当我尝试回放这个测试时,它在第三步崩溃,上面写着“找不到名为'btnLogin‘的UI元素

因此,我导航到UIMap.Designer.cs文件,并在单击按钮之前添加了下面的代码行。

代码语言:javascript
复制
uILoginButton.WaitForControlExist();

我在“UIMap.Designer.cs”中录制的方法如下所示

代码语言:javascript
复制
/// <summary>
/// DoLogin
/// </summary>
public void DoLogin()
{
    #region Variable Declarations
    WpfButton uILoginButton= this.UIMPortPodGUIWindow.UIItemCustom7.UIContinueButton;
    #endregion
    uILoginButton.WaitForControlExist(100);

    // Click 'Continue' button
    Mouse.Click(uILoginButton, new Point(191, 42));
}

在此之后,我回放了这个测试,我很高兴看到一切都很好。然后,我开始记录第二次测试,在完成记录之后,我意识到录音已经覆盖了我以前对UIMap.Designer.cs的更改,即下面的行丢失了。

代码语言:javascript
复制
uILoginButton.WaitForControlExist();

我知道它应该放在'UIMap.cs‘中,但是不知道如何在两个类中部分声明DoLogin()方法。

哪个地方是添加自定义代码的最佳位置?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-17 00:59:34

不要将代码放入.Designer.cs中,除非您不关心它是否会被随机丢失。

在这种情况下,我通常要做的是从自动生成的DoLogin复制代码,并在具有自定义步骤的UIMap.cs (而不是UIMap.Designer.cs)中创建自己的方法。

代码语言:javascript
复制
public partial class UIMap
{
    public void DoLoginWithWait()
    {
        #region Variable Declarations
        WpfButton uILoginButton = this.UIMPortPodGUIWindow.UIItemCustom7.UIContinueButton;
        #endregion
        uILoginButton.WaitForControlExist(100);

        // Click 'Continue' button
        Mouse.Click(uILoginButton, new Point(191, 42));
    }
}

程序生成的空UIMap.cs是针对您所处的确切情况的。UIMap.cs不会在新步骤的记录过程中被覆盖,这样您就可以安全地将代码放入其中。

编辑

在深入观察了一下之后,我发现有一个按钮可以让这更容易。在UIMap.uitest编辑器中单击

按钮(或Ctrl+Alt+C) --这将将该方法从设计器中取出并放入UIMap.cs文件中,然后您可以安全地编辑该方法,而不必担心重新构建的设计器文件覆盖您的更改。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28552937

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档