Testing Ansible
This document describes how to:
- Run tests locally using
ansible-test
- Extend
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.
See the list of supported platforms and versions for additional details.
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.6tox
environment.
Code Coverage
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 Testing Ansible). 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
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.
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
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.4/dev_guide/testing_running_locally.html