2013-06-21 13 views
8

こんにちは私は、コード化されたUIテスト(CUIT)を使ってアプリケーションをテストしています。私は録音オプションを試しましたが、これは私にとっては十分柔軟ではありません。別のサイズの画面で使用すると、破損します。ハンドコーディングコード化されたUIテスト

私はあなたがテストコードを手渡すことができますが、私は基本的なテストを書く方法の良い例が見つかりません。ここでは、CUITeを使用する例がありますが、これらの投稿は2011年からのものであり、マイクロソフトからCUITへの新しいアップグレードにはどのように関連しているかわかりません。

これらのテストは、Visual Studio 2012 Ultimateのビルド環境と統合する必要があります。そのため、私はSeleniumを使用していません。

とコードサンプルや優れたチュートリアルへのリンクが理解されるだろうが、具体的には、私は私のCUITs

+2

あなたが作業してみましたでの書籍の割引コードはありますか?これは、コード化されたUIテストが構築されているものです。私はこのチュートリアルが好きです:http://blog.functionalfun.net/2009/06/introduction-to-ui-automation-with.html – SlightlyCuban

+0

あなたのビルド環境にどのように統合されていますか? – Arran

+0

ユニットテストを自動化するのと同じ方法でビルドコンフィグレーションに追加します。私はまだビルド設定ファイルを編集できるようにアクセス権を待っていますが、うまくいけば長すぎることはありません –

答えて

5

CodePlexの上のコードまずコード化されたUIテストAPIプロジェクト(http://codeduicodefirst.codeplex.com/を)ハンドコーディングを開始する方法についてexamplを探していますアプリケーションとテストをダウンロードできるプロジェクトデモが含まれています。これは、記録/再生に依存せずにCUITテストを構築するために設計されています。

コードのみで作業する場合は、CUIT録画で作成される自動生成されたオブジェクトマップへの依存を避けるために必要な最大のものです。 Code-Firstプロジェクトでは、個々のページオブジェクトにマップされたクラスを使用してこの問題を回避しています。正しく覚えていれば、デスクトップアプリケーションで作業するためにプロジェクトコードを拡張する必要があります。

(これは私が見つけたCUITe以外の唯一の手書きコーディングリソースであり、CUITeはしばらくのうちに更新されていません。ここで

+1

最後の更新は2012年3月に行われ、3(!)回ダウンロードされました... – Jowen

0

は、コードファーストコード化されたUIテストを行う方法を示すビデオです:

Coded UI Tests-DeepDive-Episode3-HandCoding

+0

参照しているビデオは、 、ビデオのセクション:http://go.microsoft.com/fwlink/?LinkID=230575 – Jowen

1

多くの開発者は、このことを知っているが、それはCodedUIとコードまずテストを作成することが可能ですされていません。それは主張されていない、それは悪いです。 録音オプションは壊れやすいものと考えています。これは、マウスの座標を使用するので、UIが変更されたときにテストを再作成する必要があります。

メンテナンス可能な方法は、Page Object pattern(セレンのような他の一般的なツールでも使用されます)を使用することです。これにより、UIの抽象化がもたらされ、柔軟性とタイピング性が向上します。

あなたが読みやすい、簡単に取得し、すべての保守性のコードの中で最も:誰かがまだ見つけるために見てどのように最善の手のコードコード化されたUIテストが、IMO予定されている場合

var storeHyperlink = new HtmlHyperlink(_browserWindow); 
storeHyperlink.SearchProperties[HtmlHyperlink.PropertyNames.Id] = "StoreLink"; 
Mouse.Click(storeHyperlink); 

Read more

+0

偉大な答えとリンク - ありがとう@Jowen – user1191559

0

わかりませんレコードと再生ルートには後で失望するだろう!最も良い方法は、対話したい個々のオブジェクトを定義し、ビジネスロジックを処理するページオブジェクトを持つオートメーションフレームワークを作成することです。 Webアプリケーションをテストする場合は、汎用のUITestControlsまたはHtmlControlsを使用してオブジェクトを定義できます。たとえば、次のように

public static UITestControl EditBox_Password 
{ 
    get 
    { 
     if (mEditBox_Password == null || ! mEditBox_Password.Exists) 
     { 
      mEditBox_Password = new UITestControl (browserWindow); 
      mEditBox_Password.TechnologyName = "Web"; 
      mEditBox_Password.SearchProperties.Add (UITestControl.PropertyNames.ControlType , "Edit"); 
      mEditBox_Password.SearchProperties.Add (UITestControl.PropertyNames.Name , "TxtPassword"); 
     } 
     return mEditBox_Password ; 
    } 
} 

あなたがWindowsベースのアプリケーションをテストしている場合、あなたはWinControlsやWpfControlsを使用してオブジェクトを定義することができます。

私は最近、フレームワークをセットアップして簡単に保守可能なコードを作成する方法を明確にしたAmazon(Hand Coding Coded UI)に関する本を購入しました。それはどの本屋で利用可能ですが、ここであなたは、私はそれが有用であると思います見

https://www.amazon.com/dp/1547000856/ref=sr_1_1?s=books&ie=UTF8&qid=1496767488&sr=1-1&keywords=1547000856

を持つようにしたい場合はアマゾンのリンクがあるかどうかわかりません。

更新日:ちょうどそれをGoogleで検索し、直接UIオートメーションフレームワークとhttp://www.arkenstone-ltd.com/testing-with-coded-ui/

関連する問題