5

VS2010のコード化されたUIテスト(CUIT)機能を使用しています。
CodedUIフレームワークを記録すると、多くの階層クラスが生成されます。

CUITを(手動で)コーディングすると、作成されるコードが減り、生成されたコードと同じように(要素の検索で)最適化されるのではないかと考えていました。

また、CUITを手動でコーディングできるシナリオは何ですか?

4

3 に答える 3

4

CUITe(Coded UI Test Enhanced)フレームワークは、ハンドコーディングを好む人向けです。 http://cuite.codeplex.com/

CUITeは、Microsoft Visual StudioTeamTestのCodedUITestエンジンの上に開発された薄層であり、コードを削減し、読みやすさ保守性を向上させると同時に、自動化エンジニアに多数の優れた機能を提供します。

CUITeを使用すると、はるかに単純なオブジェクトリポジトリ(== UIMap)を定義できます。各ページ/ウィンドウは個別のクラスファイルで定義され、各UIコントロール定義は1つのライナーになります。共通のコントロールを親クラスに移動して、保守性を高めることができます。必要に応じて、ページ/ウィンドウ定義クラスをさまざまなフォルダーに分類することもできます。

于 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 に答える