With complex architecture of CI/CD platform, there comes a need for more sophisticated testing than usually. If your Jenkins relies on other services, like Gerrit, how you verify their integration is correct? When your pipelines and jobs definitions are reused, how you ensure all these do exactly what expected?
In this talk we will take a practical look into testing of Jenkins configuration on example of several cases, with focus on unit-testing of JobDSL files. We will also take a journey into Gerrit API and browse the stream events logging mechanism to discuss how the CI/CD system reacts to changes, analyzing the Gerrit-Trigger plugin for Jenkins in particular. Finally we will present how it is possible to simply imitate the Gerrit server and implement the scenario testing to ensure that changes in reused pipelines have expected effects and do not break the required functionality.
The attenders can benefit from practical knowledge and ready-to-use solutions for problems. We will give real examples of our JobDSL files and pipelines, with comments on what and how we test. Moreover, we will outline technical aspects of Jenkins-Gerrit communication on example of Gerrit-Trigger plugin.