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 clone
your fork of thesensu-ansible
repository andcd
into your local clone.- Add the
upstream
repo to your local clone of the repository with the followinggit
command:
git remote add upstream https://github.com/sensu/sensu-ansible.git
- Execute
git checkout -b feature/NEW_FEATURE_NAME_HERE
to 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 --dev
followed 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
$OS
above to one ofdebian
,ubuntu
,centos
,fedora
,amazonlinux
, ororaclelinux
. - It's faster to iterate by changing
--destroy always
to--destroy never
such 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 $OS
to re-run those steps.