

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

# AWS Device Farm での Appium Python テストのトラブルシューティング
<a name="troubleshooting-appium-python"></a>

次のトピックでは、Appium Python テストのアップロード中に発生するエラーメッセージを挙げ、各エラーを解決するための推奨回避策を伝えます。

## APPIUM\$1PYTHON\$1TEST\$1PACKAGE\$1UNZIP\$1FAILED
<a name="APPIUM_PYTHON_TEST_PACKAGE_UNZIP_FAILED"></a>

次のメッセージが表示された場合は、下の手順に従って問題を解決してください。

**警告**  
Appium テスト ZIP ファイルを開くことができませんでした。ファイルが有効であることを確認して、もう一度お試しください。

エラーなしでテストパッケージを解凍できることを確かめてください。次の例では、パッケージの名前は「**test\$1bundle.zip**」です。

1. テストパッケージを作業ディレクトリにコピーし、次のコマンドを実行します:

   ```
   $ unzip test_bundle.zip
   ```

1. 正常にパッケージを解凍したら、次のコマンドを実行して作業ディレクトリのツリー構造を見つけることができます:

   ```
   $ tree .
   ```

   有効な Appium Python パッケージでは、次のような出力が生成されます:

   ```
   .
   |-- requirements.txt
   |-- test_bundle.zip
   |-- tests (directory)
   |      `-- test_unittest.py
   `-- wheelhouse (directory)
          |-- Appium_Python_Client-0.20-cp27-none-any.whl
          |-- py-1.4.31-py2.py3-none-any.whl
          |-- pytest-2.9.0-py2.py3-none-any.whl
          |-- selenium-2.52.0-cp27-none-any.whl
          `-- wheel-0.26.0-py2.py3-none-any.whl
   ```

   詳細については、「[Device Farm で Appium テストを自動的に実行するAppium テストと Device Farm の統合](test-types-appium.md)」を参照してください。

## APPIUM\$1PYTHON\$1TEST\$1PACKAGE\$1DEPENDENCY\$1WHEEL\$1MISSING
<a name="APPIUM_PYTHON_TEST_PACKAGE_DEPENDENCY_WHEEL_MISSING"></a>

次のメッセージが表示された場合は、下の手順に従って問題を解決してください。

**警告**  
wheelhouse ディレクトリツリーに依存ホイールファイルが見つかりませんでした。テストパッケージを解凍して wheelhouse ディレクトリを開き、少なくとも 1 つのホイールファイルがディレクトリにあることを確認して、もう一度やり直してください。

エラーなしでテストパッケージを解凍できることを確かめてください。次の例では、パッケージの名前は「**test\$1bundle.zip**」です。

1. テストパッケージを作業ディレクトリにコピーし、次のコマンドを実行します:

   ```
   $ unzip test_bundle.zip
   ```

1. 正常にパッケージを解凍したら、次のコマンドを実行して作業ディレクトリのツリー構造を見つけることができます:

   ```
   $ tree .
   ```

   Appium Python パッケージが有効な場合、*wheelhouse* ディレクトリ内のハイライトされたファイルのような、*.whl* 依存ファイルが少なくとも 1 つ見つかります。

   ```
   .
   |-- requirements.txt
   |-- test_bundle.zip
   |-- tests (directory)
   |      `-- test_unittest.py
   `-- wheelhouse (directory)
          |-- Appium_Python_Client-0.20-cp27-none-any.whl
          |-- py-1.4.31-py2.py3-none-any.whl
          |-- pytest-2.9.0-py2.py3-none-any.whl
          |-- selenium-2.52.0-cp27-none-any.whl
          `-- wheel-0.26.0-py2.py3-none-any.whl
   ```

   詳細については、「[Device Farm で Appium テストを自動的に実行するAppium テストと Device Farm の統合](test-types-appium.md)」を参照してください。

## APPIUM\$1PYTHON\$1TEST\$1PACKAGE\$1INVALID\$1PLATFORM
<a name="APPIUM_PYTHON_TEST_PACKAGE_INVALID_PLATFORM"></a>

次のメッセージが表示された場合は、下の手順に従って問題を解決してください。

**警告**  
サポートされていないプラットフォームを指定した wheel ファイルが少なくとも 1 つ見つかりました。テストパッケージを解凍して wheelhouse ディレクトリを開き、ホイールファイルの名前が -any.whl または -linux\$1x86\$164.whl で終わっていることを確認して、もう一度やり直してください。

エラーなしでテストパッケージを解凍できることを確かめてください。次の例では、パッケージの名前は「**test\$1bundle.zip**」です。

1. テストパッケージを作業ディレクトリにコピーし、次のコマンドを実行します:

   ```
   $ unzip test_bundle.zip
   ```

1. 正常にパッケージを解凍したら、次のコマンドを実行して作業ディレクトリのツリー構造を見つけることができます:

   ```
   $ tree .
   ```

   Appium Python パッケージが有効な場合、*wheelhouse* ディレクトリ内のハイライトされたファイルのような、*.whl* 依存ファイルが少なくとも 1 つ見つかります。ファイルの名前は異なる場合がありますが、*-any.whl* または *-linux\$1x86\$164.whl* で終わる必要があり、これはプラットフォームを指定します。`windows` のような他のプラットフォームはサポートされていません。

   ```
   .
   |-- requirements.txt
   |-- test_bundle.zip
   |-- tests (directory)
   |      `-- test_unittest.py
   `-- wheelhouse (directory)
          |-- Appium_Python_Client-0.20-cp27-none-any.whl
          |-- py-1.4.31-py2.py3-none-any.whl
          |-- pytest-2.9.0-py2.py3-none-any.whl
          |-- selenium-2.52.0-cp27-none-any.whl
          `-- wheel-0.26.0-py2.py3-none-any.whl
   ```

   詳細については、「[Device Farm で Appium テストを自動的に実行するAppium テストと Device Farm の統合](test-types-appium.md)」を参照してください。

## APPIUM\$1PYTHON\$1TEST\$1PACKAGE\$1TEST\$1DIR\$1MISSING
<a name="APPIUM_PYTHON_TEST_PACKAGE_TEST_DIR_MISSING"></a>

次のメッセージが表示された場合は、下の手順に従って問題を解決してください。

**警告**  
テストパッケージ内にテストディレクトリが見つかりませんでした。テストパッケージを解凍し、tests ディレクトリがパッケージ内にあることを確認して、もう一度試してください。

エラーなしでテストパッケージを解凍できることを確かめてください。次の例では、パッケージの名前は「**test\$1bundle.zip**」です。

1. テストパッケージを作業ディレクトリにコピーし、次のコマンドを実行します:

   ```
   $ unzip test_bundle.zip
   ```

1. 正常にパッケージを解凍したら、次のコマンドを実行して作業ディレクトリのツリー構造を見つけることができます:

   ```
   $ tree .
   ```

   Appium Python パッケージが有効な場合、*tests* ディレクトリは作業ディレクトリ内にあります。

   ```
   .
   |-- requirements.txt
   |-- test_bundle.zip
   |-- tests (directory)
   |      `-- test_unittest.py
   `-- wheelhouse (directory)
          |-- Appium_Python_Client-0.20-cp27-none-any.whl
          |-- py-1.4.31-py2.py3-none-any.whl
          |-- pytest-2.9.0-py2.py3-none-any.whl
          |-- selenium-2.52.0-cp27-none-any.whl
          `-- wheel-0.26.0-py2.py3-none-any.whl
   ```

   詳細については、「[Device Farm で Appium テストを自動的に実行するAppium テストと Device Farm の統合](test-types-appium.md)」を参照してください。

## APPIUM\$1PYTHON\$1TEST\$1PACKAGE\$1INVALID\$1TEST\$1FILE\$1NAME
<a name="APPIUM_PYTHON_TEST_PACKAGE_INVALID_TEST_FILE_NAME"></a>

次のメッセージが表示された場合は、下の手順に従って問題を解決してください。

**警告**  
tests ディレクトリツリーに有効なテストファイルが見つかりませんでした。テストパッケージを解凍して tests ディレクトリを開き、少なくとも 1 つのファイルの名前が「test」というキーワードで開始または終了していることを確認して、もう一度やり直してください。

エラーなしでテストパッケージを解凍できることを確かめてください。次の例では、パッケージの名前は「**test\$1bundle.zip**」です。

1. テストパッケージを作業ディレクトリにコピーし、次のコマンドを実行します:

   ```
   $ unzip test_bundle.zip
   ```

1. 正常にパッケージを解凍したら、次のコマンドを実行して作業ディレクトリのツリー構造を見つけることができます:

   ```
   $ tree .
   ```

   Appium Python パッケージが有効な場合、*tests* ディレクトリは作業ディレクトリ内にあります。ファイルの名前は異なる場合がありますが、*test\$1* で始まるか、*\$1test.py* で終わる必要があります。

   ```
   .
   |-- requirements.txt
   |-- test_bundle.zip
   |-- tests (directory)
   |      `-- test_unittest.py
   `-- wheelhouse (directory)
          |-- Appium_Python_Client-0.20-cp27-none-any.whl
          |-- py-1.4.31-py2.py3-none-any.whl
          |-- pytest-2.9.0-py2.py3-none-any.whl
          |-- selenium-2.52.0-cp27-none-any.whl
          `-- wheel-0.26.0-py2.py3-none-any.whl
   ```

   詳細については、「[Device Farm で Appium テストを自動的に実行するAppium テストと Device Farm の統合](test-types-appium.md)」を参照してください。

## APPIUM\$1PYTHON\$1TEST\$1PACKAGE\$1REQUIREMENTS\$1TXT\$1FILE\$1MISSING
<a name="APPIUM_PYTHON_TEST_PACKAGE_REQUIREMENTS_TXT_FILE_MISSING"></a>

次のメッセージが表示された場合は、下の手順に従って問題を解決してください。

**警告**  
テストパッケージ内に requirements.txt ファイルが見つかりませんでした。テストパッケージを解凍し、requirements.txt ファイルがパッケージ内にあることを確認して、もう一度試してください。

エラーなしでテストパッケージを解凍できることを確かめてください。次の例では、パッケージの名前は「**test\$1bundle.zip**」です。

1. テストパッケージを作業ディレクトリにコピーし、次のコマンドを実行します:

   ```
   $ unzip test_bundle.zip
   ```

1. 正常にパッケージを解凍したら、次のコマンドを実行して作業ディレクトリのツリー構造を見つけることができます:

   ```
   $ tree .
   ```

   Appium Python パッケージが有効な場合、*requirements.txt* ファイルは作業ディレクトリ内にあります。

   ```
   .
   |-- requirements.txt
   |-- test_bundle.zip
   |-- tests (directory)
   |      `-- test_unittest.py
   `-- wheelhouse (directory)
          |-- Appium_Python_Client-0.20-cp27-none-any.whl
          |-- py-1.4.31-py2.py3-none-any.whl
          |-- pytest-2.9.0-py2.py3-none-any.whl
          |-- selenium-2.52.0-cp27-none-any.whl
          `-- wheel-0.26.0-py2.py3-none-any.whl
   ```

   詳細については、「[Device Farm で Appium テストを自動的に実行するAppium テストと Device Farm の統合](test-types-appium.md)」を参照してください。

## APPIUM\$1PYTHON\$1TEST\$1PACKAGE\$1INVALID\$1PYTEST\$1VERSION
<a name="APPIUM_PYTHON_TEST_PACKAGE_INVALID_PYTEST_VERSION"></a>

次のメッセージが表示された場合は、下の手順に従って問題を解決してください。

**警告**  
サポートされる最低バージョン 2.8.0 より低い pytest バージョンが見つかりました。requirements.txt ファイル内の pytest バージョンを変更して、もう一度試してください。

エラーなしでテストパッケージを解凍できることを確かめてください。次の例では、パッケージの名前は「**test\$1bundle.zip**」です。

1. テストパッケージを作業ディレクトリにコピーし、次のコマンドを実行します:

   ```
   $ unzip test_bundle.zip
   ```

1. 正常にパッケージを解凍したら、次のコマンドを実行して作業ディレクトリのツリー構造を見つけることができます:

   ```
   $ tree .
   ```

   作業ディレクトリの中に *requirement.txt* ファイルがあるはずです。

   ```
   .
   |-- requirements.txt
   |-- test_bundle.zip
   |-- tests (directory)
   |      `--test_unittest.py
   `-- wheelhouse (directory)
          |-- Appium_Python_Client-0.20-cp27-none-any.whl
          |-- py-1.4.31-py2.py3-none-any.whl
          |-- pytest-2.9.0-py2.py3-none-any.whl
          |-- selenium-2.52.0-cp27-none-any.whl
          `-- wheel-0.26.0-py2.py3-none-any.whl
   ```

1. pytest バージョンを取得するには、次のコマンドを実行します:

   ```
   $ grep "pytest" requirements.txt
   ```

   次のような出力があります:

   ```
   pytest==2.9.0
   ```

   pytest バージョンを示しており、この例では 2.9.0 です。Appium Python パッケージが有効な場合、pytest バージョンは 2.8.0 以上である必要があります。

   詳細については、「[Device Farm で Appium テストを自動的に実行するAppium テストと Device Farm の統合](test-types-appium.md)」を参照してください。

## APPIUM\$1PYTHON\$1TEST\$1PACKAGE\$1INSTALL\$1DEPENDENCY\$1WHEELS\$1FAILED
<a name="APPIUM_PYTHON_TEST_PACKAGE_INSTALL_DEPENDENCY_WHEELS_FAILED"></a>

次のメッセージが表示された場合は、下の手順に従って問題を解決してください。

**警告**  
依存ホイールのインストールに失敗しました。テストパッケージを解凍し、requirements.txt ファイルと wheelhouse ディレクトリを開き、requirements.txt ファイルで指定された依存ホイールが wheelhouse ディレクトリ内の依存ホイールと正確に一致することを確認して、もう一度やり直してください。

パッケージングテストのために [Python virtualenv](https://pypi.python.org/pypi/virtualenv) をセットアップすることを強くお勧めします。次に、Python virtualenv を使って仮想環境を作成し、それを起動する流れの例を示します:

```
$ virtualenv workspace
$ cd workspace 
$ source bin/activate
```

エラーなしでテストパッケージを解凍できることを確かめてください。次の例では、パッケージの名前は「**test\$1bundle.zip**」です。

1. テストパッケージを作業ディレクトリにコピーし、次のコマンドを実行します:

   ```
   $ unzip test_bundle.zip
   ```

1. ホイールファイルのインストールをテストするには、次のコマンドを実行します:

   ```
   $ pip install --use-wheel --no-index --find-links=./wheelhouse --requirement=./requirements.txt
   ```

   有効な Appium Python パッケージでは、次のような出力が生成されます:

   ```
   Ignoring indexes: https://pypi.python.org/simple
   Collecting Appium-Python-Client==0.20 (from -r ./requirements.txt (line 1))
   Collecting py==1.4.31 (from -r ./requirements.txt (line 2))
   Collecting pytest==2.9.0 (from -r ./requirements.txt (line 3))
   Collecting selenium==2.52.0 (from -r ./requirements.txt (line 4))
   Collecting wheel==0.26.0 (from -r ./requirements.txt (line 5))
   Installing collected packages: selenium, Appium-Python-Client, py, pytest, wheel
     Found existing installation: wheel 0.29.0
       Uninstalling wheel-0.29.0:
         Successfully uninstalled wheel-0.29.0
   Successfully installed Appium-Python-Client-0.20 py-1.4.31 pytest-2.9.0 selenium-2.52.0 wheel-0.26.0
   ```

1. 仮想環境を無効にするには、次のコマンドを実行します:

   ```
   $ deactivate
   ```

   詳細については、「[Device Farm で Appium テストを自動的に実行するAppium テストと Device Farm の統合](test-types-appium.md)」を参照してください。

## APPIUM\$1PYTHON\$1TEST\$1PACKAGE\$1PYTEST\$1COLLECT\$1FAILED
<a name="APPIUM_PYTHON_TEST_PACKAGE_PYTEST_COLLECT_FAILED"></a>

次のメッセージが表示された場合は、下の手順に従って問題を解決してください。

**警告**  
テストディレクトリでテストを収集できませんでした。テストパッケージを解凍して、`py.test --collect-only <path to your tests directory>` コマンドの実行が有効であることを確認し、コマンドがエラーを出力しなくなってからもう一度試してください。

パッケージングテストのために [Python virtualenv](https://pypi.python.org/pypi/virtualenv) をセットアップすることを強くお勧めします。次に、Python virtualenv を使って仮想環境を作成し、それを起動する流れの例を示します:

```
$ virtualenv workspace
$ cd workspace 
$ source bin/activate
```

エラーなしでテストパッケージを解凍できることを確かめてください。次の例では、パッケージの名前は「**test\$1bundle.zip**」です。

1. テストパッケージを作業ディレクトリにコピーし、次のコマンドを実行します:

   ```
   $ unzip test_bundle.zip
   ```

1. ホイールファイルをインストールするには、次のコマンドを実行します:

   ```
   $ pip install --use-wheel --no-index --find-links=./wheelhouse --requirement=./requirements.txt
   ```

1. テストを収集するには、次のコマンドを実行します:

   ```
   $ py.test --collect-only tests
   ```

   有効な Appium Python パッケージでは、次のような出力が生成されます:

   ```
   ==================== test session starts ====================
   platform darwin -- Python 2.7.11, pytest-2.9.0, py-1.4.31, pluggy-0.3.1
   rootdir: /Users/zhena/Desktop/Ios/tests, inifile:
   collected 1 items
   <Module 'test_unittest.py'>
     <UnitTestCase 'DeviceFarmAppiumWebTests'>
       <TestCaseFunction 'test_devicefarm'>
   
   ==================== no tests ran in 0.11 seconds ====================
   ```

1. 仮想環境を無効にするには、次のコマンドを実行します:

   ```
   $ deactivate
   ```

   詳細については、「[Device Farm で Appium テストを自動的に実行するAppium テストと Device Farm の統合](test-types-appium.md)」を参照してください。

## APPIUM\$1PYTHON\$1TEST\$1PACKAGE\$1DEPENDENCY\$1WHEELS\$1INSUFFICIENT
<a name="APPIUM_PYTHON_TEST_PACKAGE_DEPENDENCY_WHEELS_INSUFFICIENT"></a>

次のメッセージが表示された場合は、下の手順に従って問題を解決してください。

**警告**  
wheelhouse ディレクトリツリーに十分なホイール依存関係が見つかりませんでした。テストパッケージを解凍し、wheelhouse ディレクトリを開いてください。requirements.txt ファイルにホイール依存関係がすべて指定されていることを確認してください。

エラーなしでテストパッケージを解凍できることを確かめてください。次の例では、パッケージの名前は「**test\$1bundle.zip**」です。

1. テストパッケージを作業ディレクトリにコピーし、次のコマンドを実行します:

   ```
   $ unzip test_bundle.zip
   ```

1. *requirements.txt* ファイルの長さと、wheelhouse ディレクトリ内の *.whl* 依存ファイルの数を確認します:

   ```
   $ cat requirements.txt | egrep "." |wc -l
   ﻿    12
   $ ls wheelhouse/ | egrep ".+\.whl" | wc -l
       11
   ```

   *.whl* 依存ファイルの数が *requirements.txt* ファイル内の空でない行の数よりも少ない場合は、次の点を確かめる必要があります: 
   + *requirements.txt* ファイルの各行に対応する *.whl* 依存ファイルがあります。
   + *requirements.txt* ファイルには、依存パッケージ名以外の情報を含む行はありません。
   + *requirements.txt* ファイルでは、依存関係の名前が複数行で重複せず、ファイル内の 2 行が 1 つの *.whl* 依存ファイルに対応している場合があります。

   AWS Device Farm は、*requirements.txt* ファイル内の行で依存パッケージに直接対応しないもの (`pip install` コマンドのグローバルオプションを指定する行など) 、をサポートしていません。グローバルオプションのリストについては、「[要件ファイルフォーマット](https://pip.pypa.io/en/stable/reference/requirements-file-format/#global-options)」を参照してください。

   詳細については、「[Device Farm で Appium テストを自動的に実行するAppium テストと Device Farm の統合](test-types-appium.md)」を参照してください。