我一直在使用VS2010的Coded UI Test(CUIT)功能 录制CodedUI框架时会生成许多分层类。
我想知道(手工编写)CUIT是否会减少创建的代码,是否会像生成的代码那样优化(在搜索元素中)?
还有哪些情况可以手动编码CUIT?
答案 0 :(得分:4)
CUITe(编码的UI测试增强版)框架适合喜欢手工编码的人。 http://cuite.codeplex.com/
CUITe是在Microsoft Visual Studio Team Test的编码UI测试引擎之上开发的薄层,可帮助减少代码,提高可读性和可维护性,同时还为自动化工程师提供了许多很酷的功能。
CUITe允许您定义更简单的对象存储库(== UIMap)。每个页面/窗口将在单独的类文件中定义,每个UI控件定义将只是一个内容。您可以将公共控件移动到父类,从而提高可维护性。您还可以根据需要将页面/窗口定义类分类到不同的文件夹中。
答案 1 :(得分:3)
我一直在使用Coded 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");
}
谢谢,
答案 2 :(得分:0)
你可以手写更少的代码,但它可能不易维护,更容易破坏。在生成代码后,您可以使用partial类有效地覆盖搜索子句。