运行循环遍历多个页面的编码 UI 测试方法

本文关键字:编码 UI 测试方法 循环 遍历 运行 | 更新日期: 2023-09-27 18:34:31

我有一个TestMethod,它将遍历包含特定用户控件的所有页面。我遇到的问题是,当我的断言失败时,我无法在错误消息或堆栈跟踪中看到它失败的页面。 有没有办法自定义或添加要在测试结果详细信息中显示的其他参数?

并不是说它真的需要,但这是我的代码...

[TestMethod]
public void uiTestCourseListingPages() {
    UiBrowserWindow uiBrowserWindow = new UiBrowserWindow();
    string controlType = "~/_control/course/courseList.ascx";
    var request = WebRequest.Create(Utility.GET_PAGES_WITH_CONTROL_URL + controlType);
    request.ContentType = "application/json; charset=utf-8";
    using(var response = request.GetResponse()) {
        using(var streamReader = new StreamReader(response.GetResponseStream())) {
            JavaScriptSerializer serializer = new JavaScriptSerializer();
            List<PagesWithControl> pagesWithControl = serializer.Deserialize<List<PagesWithControl>>(streamReader.ReadToEnd());
            pagesWithControl.ForEach(x => {
                // launch browser
                uiBrowserWindow.launchUrl(x.key);
                // setup assertions
                Assert.AreEqual(
                     uiBrowserWindow.uiHtmlDocument.searchHtmlElementByAttributeValues<HtmlDiv>(new Dictionary<string, string> {
                        {HtmlDiv.PropertyNames.Class, "footer"}
                    }).Class,
                    "footer"
                );
            });
        }
    }
}

运行循环遍历多个页面的编码 UI 测试方法

有一个重载的 Assert.AreEqual(object,object,string(。如果将 URL 放入将在测试结果中显示的字符串中。

CodedUI Test发生故障时,它会在发生故障时保留桌面的图像。您可以检查是否创建了错误映像。

默认情况下,它是在TestResults文件夹中创建的,默认情况下位于Project文件夹中。如果测试作为Team Build的一部分或通过MTM运行,则可以通过编辑测试设置来更改默认的 TestResults 路径:

  • 如何:从 Visual Studio 编辑测试设置文件 Microsoft
  • 如何:编辑测试计划的现有测试设置

记录错误的最佳方法是尝试。抓住他们。然后将它们添加到字符串中,然后在测试结束时断言该字符串是否不为空。

这种方式可以提供错误,位置等的更多详细信息。

下面的视频解释了如何:

健壮的代码,在出错时继续http://www.microsoft.com/en-gb/showcase/details.aspx?uuid=65967d59-798b-47ce-9743-534d1c106657