The filosofy to test is:
- Test multiple distributions. (see .travis.yml)
- Test multiple version of Ansible, previous, current and next previous and future. (see tox.ini)
In Travis CI these combinations are called a
matrix. You can consider this overview per role:
|Distribution||Ansible 2.8||Ansible 2.9||Ansible devel|
|Alpine edge||yes *||yes *||yes|
|Debian unstable||yes *||yes *||yes|
|Fedora rawhide||yes *||yes||yes|
|Ubuntu Artful (17)||yes||yes||yes|
|Ubuntu devel||yes *||yes *||yes|
Distributions or Ansible versions marked with an astriks are allowed to fail. This combination is built to prepare for future distributions or releases of Ansible.
Read [this page to understand the tools (Travis, Molecule and Tox)](tox-molecule-travis.html] better.
There are multiple tests configured, here is how they relate.
To test an Ansible role, Travis CI runs molecule on a commit. This verifies that the role does it’s job, but does not ensure that it works in combination with other roles.
An example for the unit test for the Ansible role java.
Time based unit tests
Because distriutions, molecule, ansible and goss change over time, a monthly test is done to all roles using this schedule:
To test a combination of Ansible roles, Travis CI runs terraform and a complex playbook.
There is currently one integration test. A report is saved every run.