0

我有一个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"
                );
            });
        }
    }
}
4

3 回答 3

0

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

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

于 2012-05-18T17:01:14.137 回答
0

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

于 2012-05-18T16:00:24.220 回答
0

记录错误的最佳方法是尝试..捕获它们。然后将它们添加到一个字符串中,如果字符串不为空,则在测试结束时断言。

这种方式可以为错误、位置等提供更多细节。

下面的视频解释了如何:

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

于 2013-05-10T14:56:42.393 回答