2011-01-04 21 views
5

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

私はCUITをコード化して(手作業で)作成したコードを減らし、生成されたコードとして(要素を検索して)最適化するのだろうかと思っていましたか?

また、CUITを手作業でコード化できるシナリオは何ですか?

+1

Test Recorderがコントロールを見つけることができない場合があります。または、コンテナコントロールのウィンドウタイトルが動的である場合 – CoffeeCode

答えて

4

CUITe(コード化されたUIテストの強化)フレームワークは、手のコーディングを好む人々のためです。 http://cuite.codeplex.com/

CUITeものためのクールな機能の束を提供しながらは、読みやすさ保守を高め、コードを減らすことができますMicrosoft Visual Studioチームテストのコード化されたUIテストエンジンの上に開発された薄い層であり、オートメーションエンジニア。

CUITeでは、より簡単なオブジェクトリポジトリ(== UIMap)を定義できます。各ページ/ウィンドウは別のクラスファイルで定義され、各UIコントロールの定義は1つのライナーにすぎません。共通コントロールを親クラスに移動すると、保守性が向上します。また、ページ/ウィンドウ定義クラスを、適切と思われる異なるフォルダに分類することもできます。

+0

私はv1.0.1以来CUITeを使用してきました。 :) –

0

コードを手書きで書くことはできますが、保守性が低く、壊れやすい可能性が高くなります。パーシャルクラスを使用すると、コードが生成された後に検索句を効果的にオーバーライドすることができます。

3

私はコード化された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"); 
} 

おかげ手コード化されたUIスクリプトで、

+0

UIMapsを作成しないと言っていますか?このコードの多くは、テスト仕様をテスト実装から分離するためのテスト方法ではなく、UIMapファイルに入れなければならないようです。また、コード化されたUI APIについてよく知っている必要があるようですが、 – EdmundYeung99

+0

@ EdmundYeung99のようなコードを書くことができますが、実際には手のひらのコードの良い例だと思います。 –

関連する問題