VS2010のコード化されたUIテスト(CUIT)機能を使用しています。
CodedUIフレームワークを記録すると、多くの階層クラスが生成されます。
CUITを(手動で)コーディングすると、作成されるコードが減り、生成されたコードと同じように(要素の検索で)最適化されるのではないかと考えていました。
また、CUITを手動でコーディングできるシナリオは何ですか?
VS2010のコード化されたUIテスト(CUIT)機能を使用しています。
CodedUIフレームワークを記録すると、多くの階層クラスが生成されます。
CUITを(手動で)コーディングすると、作成されるコードが減り、生成されたコードと同じように(要素の検索で)最適化されるのではないかと考えていました。
また、CUITを手動でコーディングできるシナリオは何ですか?
CUITe(Coded UI Test Enhanced)フレームワークは、ハンドコーディングを好む人向けです。 http://cuite.codeplex.com/
CUITeは、Microsoft Visual StudioTeamTestのCodedUITestエンジンの上に開発された薄層であり、コードを削減し、読みやすさと保守性を向上させると同時に、自動化エンジニアに多数の優れた機能を提供します。
CUITeを使用すると、はるかに単純なオブジェクトリポジトリ(== UIMap)を定義できます。各ページ/ウィンドウは個別のクラスファイルで定義され、各UIコントロール定義は1つのライナーになります。共通のコントロールを親クラスに移動して、保守性を高めることができます。必要に応じて、ページ/ウィンドウ定義クラスをさまざまなフォルダーに分類することもできます。
私はコード化された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");
}
ありがとう、
手作業で書くコードは少なくてもかまいませんが、保守性が低くなり、壊れやすくなります。コードが生成された後、部分クラスを使用して検索句を効果的にオーバーライドできます。