コード化された UI テストを使用して SharePoint アプリケーションをテストするTest SharePoint applications with Coded UI tests

コード化された UI テストを SharePoint アプリケーションに含めると、UI コントロールを含むアプリケーション全体が正しく機能していることを検証できます。Including coded UI tests in a SharePoint application lets you verify that the whole application, including its UI controls, is functioning correctly. コード化された UI テストでは、ユーザー インターフェイスの値とロジックも検証できます。Coded UI tests can also validate values and logic in the user interface.

コード化された UI テストの長所については、「UI オートメーションを使用してコードをテストする」を参照してください。To learn more about the benefits of using coded UI tests, see Use UI automation to test your code.

必要条件Requirements

  • Visual Studio EnterpriseVisual Studio Enterprise

SharePoint アプリのコード化された UI テストを作成するCreate a coded UI test for a SharePoint app

SharePoint アプリケーションでのコード化された UI テストの作成方法は、他の種類のアプリケーションでのテストの作成方法と同じです。Creating coded UI tests for your SharePoint applications is the same as creating tests for other types of applications. 記録と再生は、Web 編集インターフェイス上のすべてのコントロールでサポートされています。Record and playback is supported for all controls on the Web Editing interface. カテゴリと Web パーツを選択するためのインターフェイスは、すべてが標準 Web コントロールです。The interface for selecting categories and web parts are all standard web controls.

SharePoint Web パーツ

注意

操作を記録している場合は、コードを生成する前に操作を検証します。If you are recording action, validate the actions before you generate code. マウス ホバーにはいくつかの動作が関連付けられているため、既定で有効になっています。Since there are several behaviors associated with mouse hover, it is on by default. コード化された UI テストから冗長なホバーを削除するようにしてください。Be careful to remove redundant hovers from your coded UI tests. そのためには、テスト用のコードを編集するか、 コード化された UI テスト エディターを使用します。You can do this by editing the code for the test, or by using the Coded UI Test Editor.

SharePoint アプリ内で Office コントロールをテストするTest Office controls within a SharePoint app

SharePoint アプリでいくつかの Office Web パーツの自動化を有効にするには、コードを少し変更する必要があります。To enable automation for some office web parts in your SharePoint app, you have to make some minor code modifications.

注意

SharePoint アプリケーションでは、Visio と PowerPoint のコントロールをテストできません。Testing Visio and PowerPoint controls in a SharePoint application is not supported.

Excel のセル コントロールExcel cell controls

Excel セル コントロールを含めるには、コード化された UI テストのコードを少し変更する必要があります。To include Excel cell controls, you must make some changes in the coded UI test's code.

警告

Excel のセルにテキストを入力してから方向キーを操作すると、正しく記録されません。Entering text in any Excel cell, followed by an arrow key action, does not record correctly. セルの選択にはマウスを使用してください。Use the mouse to select cells.

空のセルに対する操作を記録している場合は、セルをダブルクリックしてからテキスト設定操作を実行して、コードを変更する必要があります。If you are recording actions on an empty cell, you must modify the code by double clicking on the cell and then performing a set text operation. そうする必要があるのは、セルをクリックした後、キーボードを操作すると、セル内の textarea がアクティブになるためです。This is needed because a click on the cell followed by any keyboard action activates the textarea within the cell. 単に空のセルで setvalue を記録すると、セルがクリックされるまでは存在しない editbox が検索されます。Simply recording a setvalue on the empty cell would search for the editbox which is not present until the cell has been clicked. 例:For example:

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

空でないセルに対する操作を記録している場合は、セルにテキストを追加したときに新しい <div> コントロールがセルの子として追加されるため、記録はより複雑になります。If you are recording actions on a non-empty cell, then recording gets a little more complicated, because the moment you add text to a cell, a new <div> control is added as a child of the cell. 新しい <div> コントロールには、入力したテキストが含まれます。The new <div> control contains the text that you just entered. レコーダーは新しい <div> コントロールに対する操作を記録する必要がありますが、新しい <div> コントロールはテキストが入力されるまで存在しないため、記録できません。The recorder needs to record actions on the new <div> control; however, it can't because the new <div> control does not exist until after the test is entered. この問題に対応するために、手動で次のようにコードを変更する必要があります。You must manually make the following code changes to accommodate this issue.

  1. セルの初期化に移動して、 RowIndex および ColumnIndex プライマリ プロパティを作成します。Go to cell initialization and make RowIndex and ColumnIndex primary properties:

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

    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にマウスのダブルクリック操作のコードを追加します。Add code for a mouse double-click action on HtmlDiv:

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

    uIGridKeyboardInputEdit.Text = value; }
    ``
    

See also