

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# iOS 用 XCTest UI と Device Farm の統合
<a name="test-types-ios-xctest-ui"></a>

Device Farm では、XCTest UI テストフレームワークをサポートしています。中でも、Device Farm では、Objective-C と [Swift](https://developer.apple.com/swift/) の両方で記述される XCTest UI テストをサポートしています。

 XCTest UI フレームワークは、XCTest 上に構築された iOS 開発での UI テストを可能にします。詳細については、iOS 開発者ライブラリの「[ユーザーインターフェイスのテスト](https://developer.apple.com/library/prerelease/ios/documentation/DeveloperTools/Conceptual/testing_with_xcode/chapters/09-ui_testing.html#//apple_ref/doc/uid/TP40014132-CH13-SW1)」を参照してください。

Device Farm でのテストに関する一般的な情報については、「[AWS Device Farm のテストフレームワークと組み込みテスト](test-types.md)」を参照してください。

次の手順を使用して、Device Farm を iOS 用の XCTest UI テストフレームワークと統合します。

**Topics**
+ [iOS XCTest UI テストを準備する](#test-types-ios-xctest-ui-prepare)
+ [オプション 1: XCTest UI .ipa パッケージの作成](#how-to-use-create-XCTestUI-ipa-package)
+ [オプション 2: XCTest UI .zip パッケージの作成](#how-to-use-create-XCTestUI-zip-package)
+ [iOS XCTest UI テストをアップロードする](#test-types-ios-xctest-ui-upload)

## iOS XCTest UI テストを準備する
<a name="test-types-ios-xctest-ui-prepare"></a>

XCTEST\_UI テストパッケージの `.ipa` ファイルまたは `.zip` ファイルをアップロードできます。

`.ipa` ファイルは、バンドル形式の iOS Runner アプリを含むアプリケーションアーカイブです。*追加のファイルを `.ipa` ファイルに含めることはできません。*

`.zip` ファイルをアップロードする場合、iOS Runner アプリを直接、または `.ipa` ファイルのいずれかを含めることができます。テスト中に他のファイルを使用する場合は、`.zip` ファイル内に他のファイルを含めることもできます。例えば、`.zip` ファイル内に `.xctestrun`、`.xcworkspace`、`.xcodeproj` などのファイルを含めて、Device Farm で XCUI テストプランを実行できます。テストプランの実行方法の詳しい手順については、XCUI テストタイプのデフォルトのテスト仕様ファイルを参照してください。

## オプション 1: XCTest UI .ipa パッケージの作成
<a name="how-to-use-create-XCTestUI-ipa-package"></a>

*yourAppName*UITest-Runner.app バンドルは、テストのためにプロジェクトをビルドするときに Xcode によって生成されます。プロジェクトの Products ディレクトリにあります。

.ipa ファイルを作成するには

1. {{Payload}} と名付けたディレクトリを作成します。

1. アプリディレクトリを Payload ディレクトリに追加します。

1. 次に、Payload ディレクトリを `.zip` ファイルにアーカイブし、ファイル拡張子を `.ipa` に変更します。

 次のフォルダ構造は、{{my-project-nameUITest-Runner.app}} という名前のサンプルアプリケーションが `.ipa` ファイルとしてパッケージ化される方法を示しています。

```
.
└── my-project-nameUITest.ipa
    └── Payload (directory)
        └── my-project-nameUITest-Runner.app
```

## オプション 2: XCTest UI .zip パッケージの作成
<a name="how-to-use-create-XCTestUI-zip-package"></a>

Device Farm は、完全な XCTest UI テストスイートを実行するための `.xctestrun` ファイルを自動生成します。Device Farm で独自の `.xctestrun` ファイルを使用する場合は、`.xctestrun` ファイルとアプリケーションディレクトリを `.zip` ファイルに圧縮できます。テストパッケージ用の `.ipa` ファイルがすでにある場合は、{{\*-Runner.app}} の代わりにこのファイルを含めることができます。

```
.
└── swift-sample-UI.zip (directory)
   ├── my-project-nameUITest-Runner.app [OR] my-project-nameUITest.ipa
   ├── SampleTestPlan_2.xctestrun
   ├── SampleTestPlan_1.xctestrun
   └── (any other files)
```

 Device Farm で XCUI テストの Xcode テストプランを実行する場合は、*my-project-nameUITest-Runner.app* **または** *my-project-nameUITest.ipa* ファイルを含む zip と、`.xcworkspace` または `.xcodeproj` ファイルを含むテストプランで XCTEST\_UI を実行するために必要な xcode ソースコードファイルを作成できます。

`.xcodeproj` ファイルを使用した zip の例を次に示します。

```
.
└── swift-sample-UI.zip (directory)
   ├── my-project-nameUITest-Runner.app [OR] my-project-nameUITest.ipa
   ├── (any directory)
   └── {{SampleXcodeProject.xcodeproj}}
        ├── Testplan_1.xctestplan
        ├── Testplan_2.xctestplan
        └── (any other source code files created by xcode with .xcodeproj)
```

`.xcworkspace` ファイルを使用した zip の例を次に示します。

```
.
└──swift-sample-UI.zip (directory)
   ├── my-project-nameUITest-Runner.app [OR] my-project-nameUITest.ipa
   └── (any directory)
   │   ├── SampleXcodeProject.xcodeproj
   │   ├── Testplan_1.xctestplan
   │   ├── Testplan_2.xctestplan
   |   └── (any other source code files created by xcode with .xcodeproj)
   └── {{SampleWorkspace.xcworkspace}}
       └── contents.xcworkspacedata
```

**注記**  
XCTest UI .zip パッケージ内に「Payload」という名前のディレクトリがないことを確認してください。

## iOS XCTest UI テストをアップロードする
<a name="test-types-ios-xctest-ui-upload"></a>

Device Farm コンソールを使用してテストをアップロードします。

1. [https://console.aws.amazon.com/devicefarm](https://console.aws.amazon.com/devicefarm) で Device Farm コンソールにサインインします。

1. Device Farm ナビゲーションパネルで、**[モバイルデバイスのテスト]** を選択して、**[プロジェクト]** を選択します。

1. プロジェクトのリストで、テストをアップロードするプロジェクトを選択します。
**ヒント**  
検索バーで名前によりプロジェクトリストを絞り込めます。  
プロジェクトを作成するには、「[AWS Device Farm でのプロジェクトの作成](how-to-create-project.md)」の手順に従ってください

1. **[実行を作成]** を選択します。

1. **[実行設定]** の **[実行タイプ]** セクションで、**[iOS アプリ]** を選択します。

1. **[アプリを選択]** の **[アプリの選択オプション]** セクションで、**[アプリをアップロード]** を選択します。次に、**[アプリをアップロード]** で **[ファイルを選択]** を選択します。

1. iOS アプリケーションファイルを参照して選択します。このファイルは、.ipa ファイルである必要があります。
**注記**  
.ipa ファイルがシミュレーター用ではなく iOS デバイス用に作成されていることを確認します。

1. **[テスト設定]**の **[テストフレームワークを選択]** セクションで、**[XCTest UI]** を選択します。次に、**[アプリをアップロード]** で **[ファイルを選択]** を選択します。

1. iOS XCTest UI テストランナーを含む .ipa ファイルを参照して選択します。

1. 実行作成プロセスの残りのステップを実行します。テストするデバイスを選択し、オプションで追加の設定を指定します。

1. **[実行を作成]** を選択します。Device Farm によってテストが実行され、結果がコンソールに表示されます。​