We have integration tests, multiple microservices, Circle CI workflow and Kubernetes based production. We have 3 options about where to run the integration tests:
CI local, using the CI vendor run-time - multiple containers that interact with each other using executors. Propietary Circle syntax and run-time
Remote Kubernetes - the CI would have to spinup an external Kubernetes env (at our cloud provider) and run the test over there. Simulates our real production but harder to invoke from the CI
CI local, using docker-compose - known and reputable technology, yet not a copy of our production
Which is your preferred choice?