Integration Tests with Microservices (NodeJS), Jenkins and Docker

How would you typically configure Jenkins to build microservices (multiple NodeJS services, Rabbit, Mongo, etc), then test those services all together ?

Let’s say I’ve the following services:

  • How to run NodeJS command-line tools inside Docker?
  • Docker IBM SDK-8 Image - Getting thread/memory dump
  • How can I fix Docker/Mac no space left on device error?
  • Persist Elastic Search Data in Docker Container
  • how to run two microservices on same network?
  • Docker: Best practice for development and production environment
    • RabbitMQ
    • Mongo
    • NodeJS Service 1
    • NodeJS Service 2

    Each of them has their own tests (unit and integration) and their Dockerfile.

    I want to configure Jenkins in a way that it would enable me to clone all theses services, run them all at the same time in different containers with Rabbit and Mongo containers along them. It would then run the tests for each of those services (they do generate TAP and coverage reports). Then take those reports for the TAP/Coverage Jenkins plugins. If it works out, commit the image and push it to the docker registry.

    I’ve been lying around Stack and Google and I don’t really see an easy way to get there that would not imply tons of bash.

    Maybe I see it in the wrong way, any input is more than welcome!

  • How to use run deck service from local browser using up address?
  • Loading Elasticsearch from a config file in Docker
  • Docker with multiple exposed ports
  • Open file inside docker container has been shut down
  • Copy multiple files in docker with cp
  • “Error response from daemon: Cannot start container … no such file or directory” on Oracle Linux running hello-world
  • One Solution collect form web for “Integration Tests with Microservices (NodeJS), Jenkins and Docker”

    You can test using an “consumer driven contract” approach.
    Like mentioned here:
    using this project:

    Docker will be the best open platform for developers and sysadmins to build, ship, and run distributed applications.