Crazy Ivan uses Travis CI for automated testing.
Within the Travis CI Configuration, several steps are executed to complete full functional testing:
- Set up Docker instances of Neo4j and Consul, and then populate the KV Store in Consul with several configuration values.
- Build a new Docker Image for Crazy Ivan and start it.
- Download 0-Meter. This is a custom tool developed for 0MQ load testing, and is used to send a series of messages to Crazy Ivan over the course of the tests. The configuration for 0-Meter CI Tests can be found in the ci/ folder.
- Run 0-Meter to send a series of messages, some expected to fail and others to succeed, to Crazy Ivan. Validate the err_code field in the response.
- If all tests pass, then push the newly built image to Docker Hub.
Note that unit tests are performed within the Dockerfile itself, so that the Docker build will fail if any unit tests fail. If you are adding unit tests to Crazy Ivan, you should add them within the Dockerfile as well.