

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

# Device Farm でのテストパッケージへのファイルの追加
<a name="custom-test-environments-extending-files"></a>

追加の構成ファイルまたは追加のテストデータとして、テストの一部として追加ファイルを使用することが必要な場合があります。これらの追加ファイルは、 AWS Device Farmにアップロードする前にテストパッケージに追加しておき、カスタム環境モードからアクセスできます。基本的に、すべてのテストパッケージのアップロード形式 (ZIP、IPA、APK、JAR など) は、標準 ZIP 操作をサポートするパッケージアーカイブ形式です。

次のコマンド AWS Device Farm を使用して、 にアップロードする前にテストアーカイブにファイルを追加できます。

```
$ zip zip-with-dependencies.zip extra_file
```

追加ファイルのディレクトリの場合:

```
$ zip -r zip-with-dependencies.zip extra_files/
```

これらのコマンドは、IPA ファイルを除くすべてのテストパッケージのアップロード形式で期待どおりに機能します。IPA ファイルの場合、特に XCUITests で使用する場合は、 が iOS テストパッケージ AWS Device Farm を辞めるため、余分なファイルを少し別の場所に配置することをお勧めします。iOS テストをビルドするとき、テストアプリケーションディレクトリは {{Payload}} という名前の別のディレクトリ内にあります。

たとえば、このような iOS テストディレクトリは次のようになります:

```
$ tree
.
└── Payload
    └── ADFiOSReferenceAppUITests-Runner.app
        ├── ADFiOSReferenceAppUITests-Runner
        ├── Frameworks
        │   ├── XCTAutomationSupport.framework
        │   │   ├── Info.plist
        │   │   ├── XCTAutomationSupport
        │   │   ├── _CodeSignature
        │   │   │   └── CodeResources
        │   │   └── version.plist
        │   └── XCTest.framework
        │       ├── Info.plist
        │       ├── XCTest
        │       ├── _CodeSignature
        │       │   └── CodeResources
        │       ├── en.lproj
        │       │   └── InfoPlist.strings
        │       └── version.plist
        ├── Info.plist
        ├── PkgInfo
        ├── PlugIns
        │   ├── ADFiOSReferenceAppUITests.xctest
        │   │   ├── ADFiOSReferenceAppUITests
        │   │   ├── Info.plist
        │   │   └── _CodeSignature
        │   │       └── CodeResources
        │   └── ADFiOSReferenceAppUITests.xctest.dSYM
        │       └── Contents
        │           ├── Info.plist
        │           └── Resources
        │               └── DWARF
        │                   └── ADFiOSReferenceAppUITests
        ├── _CodeSignature
        │   └── CodeResources
        └── embedded.mobileprovision
```

これらの XCUITest パッケージでは、{{Payload}} ディレクトリ内の {{.app}} で終わるディレクトリに余分なファイルを追加します。たとえば、以下のコマンドは、このテストパッケージにファイルを追加する方法を示しています:

```
$ mv extra_file Payload/*.app/
$ zip -r my_xcui_tests.ipa Payload/
```

テストパッケージにファイルを追加すると、アップロード形式に基づいて AWS Device Farm でインタラクションの動作が若干異なることが予想されます。ZIP ファイル拡張子を使用したアップロードでは、テスト前に AWS Device Farm がアップロードを自動的に解凍し、解凍したファイルを {{$DEVICEFARM\_TEST\_PACKAGE\_PATH}} 環境変数のある場所に残します。(つまり、最初の例のように {{extra\_file}} というファイルをアーカイブのルートに追加した場合、テスト中は {{$DeviceFarm\_Test\_Package\_path/Extra\_File}} に置かれることになります)。

より実用的な例を挙げると、Appium TestNG ユーザーがテストに {{testng.xml}} ファイルを含めたい場合、以下のコマンドを使用してアーカイブに含めることができます:

```
$ zip zip-with-dependencies.zip testng.xml
```

次に、カスタム環境モードのテストコマンドを次のように変更できます:

```
java -D appium.screenshots.dir=$DEVICEFARM_SCREENSHOT_PATH org.testng.TestNG -testjar *-tests.jar -d $DEVICEFARM_LOG_DIR/test-output $DEVICEFARM_TEST_PACKAGE_PATH/testng.xml
```

テストパッケージのアップロード拡張子が ZIP でない場合 (APK、IPA、JAR ファイルなど)、アップロードされたパッケージファイル自体は {{$DEVICEFARM\_TEST\_PACKAGE\_PATH}} にあります。これらはまだアーカイブ形式のファイルなので、ファイルを解凍すると、その中身から追加のファイルにアクセスできます。たとえば、次のコマンドはテストパッケージ (APK、IPA、または JAR ファイル用) の中身を {{/tmp}} ディレクトリに解凍します。

```
unzip $DEVICEFARM_TEST_PACKAGE_PATH -d /tmp
```

APK または JAR ファイルの場合、追加ファイルは {{/tmp}} ディレクトリ (例: {{/tmp/extra\_file}}) に解凍されます。IPA ファイルの場合、前に説明したように、余分なファイルは {{Payload}} ディレクトリ内の {{.app}} で終わるフォルダー内の少し異なる場所に配置されます。たとえば、上記の IPA 例に基づくと、ファイルは {{/tmp/Payload/ADFiOSReferenceAppUITests-Runner.app/extra\_file}} という場所にあります ({{/tmp/Payload/\*.app/extra\_file}} として参照可能)。

テストスイートを拡張してテストを最適化するその他の方法については、「[Device Farm でのカスタムテスト環境の拡張](custom-test-environments-extending.md)」を参照してください。