Abstract
Unit tests are the bread and butter of any project's quality assurance process. There is tooling that helps us find untested areas, records the coverage percentages, and notifies us if the changes cause a drop in the test scope. However, sometimes more than unit tests are needed. Running the executable in a test setup that resembles its actual use case without unit testing tooling is, in some cases, a more appropriate way to verify correct functionality.
Go 1.20 introduced the instrumentation of the application binary and enabled collecting code coverage for the integration tests. The new feature inspired the Findy Agency team to refactor their integration testing pipeline for their microservices. Along with the updated Go-toolchain, the new solution relies on GitHub Actions, Docker, and GitHub Packages. It enables the team to monitor the test coverage and quality better and share the test scripts effectively between different services.