Photo by Guillaume Bolduc on Unsplash

In the past, integration/E2E tests have been hard to orchestrate and getting different applications coordinating with each-other in CI has been non-obvious. However, with the meteoric rise of microservices and containerization, it’s no longer an option to skip this layer of testing if we want to have the most confidence in our applications. You can read more about the differences between unit, integration and E2E testing here. Fortunately, as Cypress points out:

“T he web has evolved. Finally testing has too.”

Cypress + Docker + CI = ❤️. Cypress and Docker allow you to completely decouple the testing framework from the actual application code. This setup can essentially test any web app regardless of your programming language or application framework of choice.

This tutorial will focus on setting up the infrastructure in order to run E2E tests across multiple repos locally and in CI — not on writing the actual tests.

This article is highly influenced by these two great articles and I recommend you read them as well: