5

我一直在使用 VS2010 的 Coded UI Test(CUIT) 功能。
CodedUI 框架在录制时会生成大量的分层类。

我想知道(手动)编码 CUIT 是否会减少创建的代码,它是否会像生成的代码一样优化(在搜索元素中)?

还有哪些场景可以手动编码 CUIT?

4

3 回答 3

4

CUITe(编码 UI 测试增强)框架适用于喜欢手工编码的人。 http://cuite.codeplex.com/

CUITe 是在 Microsoft Visual Studio Team Test 的 Coded UI Test 引擎之上开发的一个薄层,它有助于减少代码提高可读性可维护性,同时还为自动化工程师提供了一系列很酷的功能。

CUITe 允许您定义一个更简单的对象存储库 (== UIMap)。每个页面/窗口都将在一个单独的类文件中定义,每个 UI 控件定义将只是一个衬里。您可以将通用控件移至父类,从而提高可维护性。您还可以将页面/窗口定义类分类到您认为合适的不同文件夹中。

于 2011-09-28T07:06:23.917 回答
3

我一直致力于编码 UI,据我了解,记录/生成的代码太复杂且难以维护。

我总是使用手工编码,简单易维护。

这是Silver-light 应用程序的完整示例手工编码的 UI 脚本

[TestMethod]
public void SilverlightHANDCODINGTest()
{
    BrowserWindow br = BrowserWindow.Launch(@"http://localhost:1377/SilverlightApplication1TestPage.html");

    UITestControl sCustom = new UITestControl(br);
    sCustom.TechnologyName = "Web";
    sCustom.SearchProperties.Add("ControlType", "Custom");
    sCustom.SearchProperties.Add("TagName", "OBJECT");
    sCustom.SearchProperties.Add("Type", "application/x-silverlight-2");
    sCustom.SearchProperties.Add("TagName", "OBJECT");

    // sCustom.DrawHighlight();

    SilverlightControl sframe = new SilverlightControl(sCustom);
    sframe.TechnologyName = "Silverlight";
    sframe.SearchProperties.Add(SilverlightControl.PropertyNames.MaxDepth, "-1");
    sframe.DrawHighlight();

    SilverlightEdit sTextBox = new SilverlightEdit(sCustom);
    sTextBox.TechnologyName = "Silverlight";
    sTextBox.DrawHighlight();
    Playback.Wait(2000);

    sTextBox.SetProperty(SilverlightEdit.PropertyNames.Text, "Thank god");

    SilverlightButton sButton = new SilverlightButton(sCustom);
    sButton.TechnologyName = "Silverlight";
    sButton.SearchProperties.Add(SilverlightButton.PropertyNames.DisplayText, "Button");

    sButton.DrawHighlight();

    Playback.Wait(2000);

    Mouse.Click(sButton);

    SilverlightComboBox sComboBox= new SilverlightComboBox(sCustom);
    sComboBox.TechnologyName = "Silverlight";

    sComboBox.DrawHighlight();

    Playback.Wait(2000);

    sComboBox.SetProperty(SilverlightComboBox.PropertyNames.SelectedItem,"Kishore");
}

谢谢,

于 2011-06-27T10:41:04.063 回答
0

您可能会手工编写更少的代码,但它的可维护性可能会降低并且更容易出错。在生成代码后,您可以使用分部类有效地覆盖搜索子句。

于 2011-01-31T05:23:19.687 回答