コード化された UI テストを使用した SharePoint 2010 アプリケーションのテスト

コード化された UI テストを SharePoint アプリケーションに含めると、UI コントロールを含むアプリケーション全体が正しく機能していることを検証できます。 コード化された UI テストでは、ユーザー インターフェイスの値とロジックも検証できます。

必要条件

  • Visual Studio Enterprise

コード化された UI テストについて把握しておくべきこと

コード化された UI テストを使用する利点の詳細については、「UI オートメーションを使用してコードをテストする」と「Visual Studio 2012 を使用した継続的配信のためのテスト - 第 5 章: システム テストの自動化」を参照してください。

  • 必須コンポーネント SharePoint アプリケーションのコード化された UI テストは、SharePoint 2010 でのみサポートされます。

  • 必須コンポーネント SharePoint アプリケーションでは、Visio および PowerPoint 2010 コントロールはサポートされていません。

SharePoint アプリのコード化された UI テストを作成する

SharePoint 2010 アプリケーションでのコード化された UI テストの作成 方法は、他の種類のアプリケーションでのテストの作成方法と同じです。 記録と再生は、Web 編集インターフェイス上のすべてのコントロールでサポートされています。 カテゴリと Web パーツを選択するためのインターフェイスは、すべてが標準 Web コントロールです。

SharePoint Web パーツ

注意

操作を記録している場合は、コードを生成する前に操作を検証します。 マウス ホバーにはいくつかの動作が関連付けられているため、既定で有効になっています。 コード化された UI テストから冗長なホバーを削除するようにしてください。 そのためには、テスト用のコードを編集するか、 コード化された UI テスト エディターを使用します。

SharePoint アプリ内に Office 2010 コントロールのテストを含める

SharePoint アプリでいくつかの Office 2010 Web パーツの自動化を有効にするには、コードを少し変更する必要があります。

警告

Visio および PowerPoint 2010 コントロールはサポートされていません。

Excel 2010 のセル コントロール

Excel セル コントロールを含めるには、コード化された UI テストのコードを少し変更する必要があります。

警告

Excel のセルにテキストを入力してから方向キーを操作すると、正しく記録されません。 セルの選択にはマウスを使用してください。

空のセルに対する操作を記録している場合は、セルをダブルクリックしてからテキスト設定操作を実行して、コードを変更する必要があります。 そうする必要があるのは、セルをクリックした後、キーボードを操作すると、セル内の textarea がアクティブになるためです。 単に空のセルで setvalue を記録すると、セルがクリックされるまでは存在しない editbox が検索されます。 例:

Mouse.DoubliClick(uiItemCell,new Point(31,14));  
uiGridKeyboardInputEdit.Text=value;  

空でないセルに対する操作を記録している場合は、セルにテキストを追加したときに新しい <div> コントロールがセルの子として追加されるため、記録はより複雑になります。 新しい <div> コントロールには、入力したテキストが含まれます。 レコーダーは新しい <div> コントロールに対する操作を記録する必要がありますが、新しい <div> コントロールはテキストが入力されるまで存在しないため、記録できません。 この問題に対応するために、手動で次のようにコードを変更する必要があります。

  1. セルの初期化に移動して、 RowIndex および ColumnIndex プライマリ プロパティを作成します。

    this.mUIItemCell.SearchProperties[HtmlCell.PropertyNames. RowIndex] = "3";   
    this.mUIItemCell.SearchProperties[HtmlCell.PropertyNames. ColumnIndex] = "3";  
    
  2. セルの HtmlDiv 子を検索します。

    private UITestControl getControlToDoubleClick(HtmlCell cell)   
    {   
         if (String.IsNullOrEmpty(cell.InnerText)) return cell;   
         HtmlDiv pane = new HtmlDiv(cell);   
         pane.FilterProperties[HtmlDiv.PropertyNames.InnerText] = cell.InnerText;   
         // Class is an important property in finding pane   
         pane.FilterProperties[HtmlDiv.PropertyNames.Class] = "cv-nwr";   
         UITestControlCollection panes = pane.FindMatchingControls();   
         return panes[0];   
    }  
    
  3. HtmlDivにマウスのダブルクリック操作のコードを追加します。

    Mouse.DoubleClick(uIItemPane, new Point(31, 14)); )  
    
  4. TextAreaにテキストを設定するコードを追加します。

    uIGridKeyboardInputEdit.Text = value; }  
    

SharePoint 2010 アプリで Silverlight Web パーツのコード化された UI テストを有効にする

Visual Studio 2012 以降では、Silverlight のテストはサポートされていません。 しかし、SharePoint 2010 アプリで Silverlight Web パーツをテストしたい場合は、Visual Studio ギャラリーから個別の Silverlight プラグインをインストールすることができます。

コンピューターを設定する

  1. Visual Studio 2012.1 以降がインストールされていることを確認します。

  2. Microsoft Visual Studio UI Test Plugin for Silverlightをインストールします。

  3. Fiddlerをインストールします。 これは、HTTP トラフィックをキャプチャしてログ記録するだけのツールです。

  4. fiddlerXap プロジェクトをダウンロードします。 解凍、ビルド後、"CopySLHelper.bat" スクリプトを実行して、Fiddler ツールで Silverlight Web パーツをテストするときに必要なヘルパー DLL をインストールします。

    コンピューターのセットアップ後、Silverlight Web パーツを使用する SharePoint 2010 アプリのテストを開始するために、次の手順に従います。

Silverlight Web パーツをテストする

  1. Fiddler を起動します。

  2. ブラウザーのキャッシュを消去します。 この操作が必要なのは、Silverlight UI オートメーション ヘルパー DLL が含まれている XAP ファイルが、通常はキャッシュされるためです。 変更した XAP ファイルが確実に格納されるようにするために、ブラウザーのキャッシュを消去します。

  3. Web ページを開きます。

  4. 通常の Web アプリケーション テストと同様に、レコーダーを開始し、コードを生成します。

  5. 生成されたコードが、Microsoft.VisualStudio.TestTools.UITest.Extension.Silverlight.dll を参照することを確認する必要があります。

    詳細については、「 Visual Studio 2012 での SharePoint 2010 の UI テスト」をご覧ください。

外部リソース

ブログ

Visual Studio 2012 での SharePoint 2010 の UI テスト

コード化された UI テストでの Silverlight コントロールの検索ロジックを理解する

Silverlight コントロールのプロパティの取得

コード化された UI テストのコンテンツ インデックス

ガイダンス

Visual Studio 2012 を使用した継続的配信のためのテスト - 第 5 章: システム テストの自動化

フォーラム

Visual Studio ALM + Team Foundation Server のブログ

関連項目

UI オートメーションを使用してコードをテストする
SharePoint 2010 および 2013 アプリケーションの Web パフォーマンス テストおよびロード テスト
SharePoint ソリューションの作成
SharePoint コードの検証およびデバッグ
SharePoint ソリューションのビルドとデバッグ
SharePoint アプリケーションのパフォーマンスのプロファイリング