

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 將適用於 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 架構可在 iOS 開發中啟用 UI 測試，建置於 XCTest 之上。如需詳細資訊，請參閱 iOS Developer Library 中的 [使用者界面測試](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>

您可以上傳`.ipa`檔案或 XCTEST\$1UI 測試套件`.zip`的檔案。

`.ipa` 檔案是應用程式封存，其中包含套件格式的 iOS Runner 應用程式。*檔案內不可包含其他`.ipa`檔案。*

如果您上傳`.zip`檔案，它可以直接包含 iOS Runner 應用程式或 `.ipa` 檔案。如果您想要在測試期間使用檔案，也可以在`.zip`檔案中包含其他檔案。例如，您可以包含 或 等`.zip`檔案`.xctestrun``.xcworkspace``.xcodeproj`，在裝置陣列上執行 XCUI 測試計劃。有關如何執行 Test Plans 的詳細指示可在 XCUI 測試類型的預設測試規格檔案中取得。

## 選項 1：建立 XCTest UI .ipa 套件
<a name="how-to-use-create-XCTestUI-ipa-package"></a>

當您建置專案進行測試時，Xcode 會產生 *yourAppName*UITest-Runner.app 套件。您可以在專案的「產品」目錄中找到該 bundle。

若要建立 .ipa 檔案：

1. 建立名為*承載*的目錄。

1. 將您的應用程式目錄新增至承載目錄。

1. 將承載目錄封存至`.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`檔案，而不是 *\$1-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，以及使用測試計畫執行 XCTEST\$1UI 所需的 xcode 原始程式碼檔案，包括 `.xcworkspace`或 `.xcodeproj` 檔案。

以下是使用 `.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. 登入 Device Farm 主控台，網址為 https：//[https://console.aws.amazon.com/devicefarm](https://console.aws.amazon.com/devicefarm)。

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 或 .zip 檔案。

1. 完成執行建立程序中剩餘的步驟。您將選取要測試的裝置，並選擇性地指定其他組態。

1. 選擇**建立執行**。Device Farm 會執行您的測試，並在主控台中顯示結果。