ansible/docs/docsite/rst/dev_guide/testing_running_locally.rst
mikedlr fbbffbabde Mdd module unit test docs (#31373)
* new documentation for unit testing - especially module unit testing

* unit test documentation reformatting and further fixes

* unit test documentation - point to online coverage reports & fix bad spaces

* Small copy edits.

* First pass copy edit / rewrite. More info needed.

* testing documentation - clean up structure, especially code coverage - reduce repetition

* module unit test documentation - improved introduction

* testing documentation - more fixes from and inspired by review from dharmabumstead

* testing documentation - fixes from mattclay + some other minor tweaks

* More copy edits.

* testing documentation - further fixes from review

* Copy edits

* Copy edits

* More copy edits.
2017-10-19 13:36:57 -07:00

2.2 KiB

Testing Ansible

Topics

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.

Recommended for integration tests.

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.6 tox 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). 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

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