2017-04-28 10:08:26 +02:00
***** ***** *****
2017-04-14 02:46:21 +02:00
Testing Ansible
2017-04-28 10:08:26 +02:00
***** ***** *****
2017-04-14 02:46:21 +02:00
2017-04-28 10:08:26 +02:00
.. contents :: Topics
2017-04-28 12:58:38 +02:00
This document describes how to:
2017-04-28 10:08:26 +02:00
* Run tests locally using `` ansible-test ``
* Extend
2017-04-14 02:46:21 +02:00
Requirements
============
There are no special requirements for running `` ansible-test `` on Python 2.7 or later.
The `` argparse `` package is required for Python 2.6.
The requirements for each `` ansible-test `` command are covered later.
Test Environments
=================
Most `` ansible-test `` commands support running in one or more isolated test environments to simplify testing.
Remote
------
The `` --remote `` option runs tests in a cloud hosted environment.
An API key is required to use this feature.
Recommended for integration tests.
2017-04-28 10:08:26 +02:00
See the `list of supported platforms and versions <https://github.com/ansible/ansible/blob/devel/test/runner/completion/remote.txt> `_ for additional details.
2017-04-14 02:46:21 +02:00
Interactive Shell
=================
Use the `` ansible-test shell `` command to get an interactive shell in the same environment used to run tests. Examples:
* `` ansible-test shell --docker `` - Open a shell in the default docker container.
* `` ansible-test shell --tox --python 3.6 `` - Open a shell in the Python 3.6 `` tox `` environment.
Code Coverage
=============
2017-10-19 22:36:57 +02:00
Code coverage reports make it easy to identify untested code for which more tests should
be written. Online reports are available but only cover the `` devel `` branch (see
:doc: `testing` ). For new code local reports are needed.
Add the `` --coverage `` option to any test command to collect code coverage data. If you
aren't using the `` --tox `` or `` --docker `` options which create an isolated python
environment then you may have to use the `` --requirements `` option to ensure that the
correct version of the coverage module is installed
ansible-test units --coverage apt
ansible-test integration --coverage aws_lambda --tox --requirements
ansible-test coverage html
2017-04-14 02:46:21 +02:00
Reports can be generated in several different formats:
* `` ansible-test coverage report `` - Console report.
* `` ansible-test coverage html `` - HTML report.
* `` ansible-test coverage xml `` - XML report.
2017-10-19 22:36:57 +02:00
To clear data between test runs, use the `` ansible-test coverage erase `` command. For a full list of features see the online help::
ansible-test coverage --help