Testing
This Ansible role makes use of the molecule testing framework to run automatic integration tests for every change.
Molecule is using Python 2.7 with the latest stable release of Ansible to deploy this Ansible role. After succesfully deploying the entire role, Molecule then uses Inspec to perform a set of tests against the final containers. This ensures that for every supported operating system, the end result is what we expect.
All changes submitted via Pull Requests are blocked from merging until the integration tests pass.
Testing locally
In order to speed up local development, you may opt to locally run the integration tests to more quickly iterate on new features.
Local environment prep
- Fork the sensu-ansible repository
git cloneyour fork of thesensu-ansiblerepository andcdinto your local clone.- Add the
upstreamrepo to your local clone of the repository with the followinggitcommand:
git remote add upstream https://github.com/sensu/sensu-ansible.git
- Execute
git checkout -b feature/NEW_FEATURE_NAME_HEREto work on a dedicated branch - Ensure you have a recent version of Docker installed locally: https://docs.docker.com/install/
- Ensure you have pipenv installed.
- Install this repositories development dependacies with
pipenv install --two --devfollowed bygem install rubocop - Execute the full integration tests for your chosen operating system distribution:
pipenv run molecule test --scenario-name $OS --driver-name docker --destroy always
Notes:
- Currently, you can set
$OSabove to one ofdebian,ubuntu,centos,fedora,amazonlinux, ororaclelinux. - It's faster to iterate by changing
--destroy alwaysto--destroy neversuch that you don't have to full rebuild the testing infrastructure. - If you want to limit testing to just the Inspec unit tests, you can simply run
pipenv run molecule verify --scenario-name $OSto re-run those steps.