Ansible のテスト¶
本書では、以下を行う方法を説明します。
ansible-test
を使用してテストをローカルで実行します。- 拡張します。
要件¶
Python 2.7 以降で ansible-test
を実行する特別な要件はありません。
Python 2.6 には argparse
パッケージが必要です。
各 ansible-test
コマンドの要件は、後で説明します。
テスト環境¶
ほとんどの ansible-test
コマンドは、テストを簡単にするために、1 つ以上の分離テスト環境での実行をサポートします。
リモート¶
--remote
オプションは、クラウドホスト環境でテストを実行します。
この機能を使用するには API キーが必要です。
統合テストに推奨されます。
詳細は、「list of supported platforms and versions <https://github.com/ansible/ansible/blob/devel/test/runner/completion/remote.txt>_」 の一覧を参照してください。
環境変数¶
環境変数を使用してテストを操作する際には、以下の制限事項に留意してください。環境変数は以下のようになります。
--docker
オプションまたは--remote
オプションを使用する場合は、ホストからテスト環境に伝播されません。common_environment
関数のtest/runner/lib/util.py
でホワイトリスト化されない限り、テスト環境に公開されません。passenv
定義を使用してtest/runner/tox.ini
でホワイトリスト化しない限り、--tox
オプションを使用してテスト環境に公開されません。例:
ansible-test integration --tox
の実行時に、ANSIBLE_KEEP_REMOTE_FILES=1
を設定できます。ただし、--docker
オプションを使用すると、 Docker 環境にアクセスするには、ansible-test shell
を実行する必要があります。シェルプロンプトで一度、環境変数を設定でき、 テストが実行されました。これは、 「AnsibleModule ベースのモジュールのデバッグ」の指示に従って、コンテナー内でテストをデバッグする際に便利です。
インタラクティブシェル¶
ansible-test shell
コマンドを使用して、テストを実行するのに使用する同じ環境でインタラクティブシェルを取得します。例:
ansible-test shell --docker
- デフォルトの docker コンテナーでシェルを開きます。ansible-test shell --tox 3.6
- Python 3.6tox
環境でシェルを開きます。
コードの対象範囲¶
コードの対象範囲レポートは、
より多くのテストが記述されるべき未テストのコードを簡単に識別することができます。 オンラインレポートは利用できますが、devel
ブランチのみを対象としています
( Ansible のテスト を参照)。 新規コードのローカルレポートが必要な場合。
--coverage
オプションをテストコマンドに追加して、コードの対象範囲のデータを収集します。 分離された python を作成する
--tox
オプションまたは --docker
オプションを使用していない場合は、
-requirements
オプションを使用して、
対象モジュールの正しいバージョンがインストールされている必要があります。
ansible-test units –coverage apt ansible-test integration –coverage aws_lambda –tox –requirements ansible-test coverage html
レポートは、複数の形式で生成できます。
ansible-test coverage report
- コンソールレポートansible-test coverage html
- HTML レポートansible-test coverage xml
- XML レポート
テストの実行間でデータを消去するには、ansible-test coverage erase
コマンドを使用します。機能の一覧は、オンラインヘルプを参照してください。
ansible-test coverage –help