Integration Testing is the second-most important phase in Continuous Integration and Delivery. It's the first time, multiple components interact with each other. The current trend towards microservice software-architectures require a new thinking regarding integration testing of distributed systems. In this article I want to reflect on the challenges for testing those architectures. In monolithic applications, components or parts are tightly bundled. Incompatibilities can often be detected already during compilation. Components interact with each other through messages that are transmitted locally, i.
In this article I describe how to setup jacoco for Maven multi-module projects so that integration test coverage can be calculated for the entire code base and analyzed using Sonarqube.