One minute
Running Go Tests Inside a Docker Container
With the following Dockerfile we can easily spin up a docker container that will run the tests:
FROM golang:1.15 as BUILD
WORKDIR /app
COPY . .
ENTRYPOINT ["go", "test", "-v", "./...", "-coverprofile", "cover.out"]
We can setup a docker-compose.yaml file like the following one so it’s easier to spin up all needed containers at once:
version: '3'
services:
testsuite:
build:
context: .
dockerfile: build/ci/Dockerfile.test
depends_on:
- db
volumes:
- .:/app
db:
image: mysql
// ... Add all the dependencies like DB, external APIs..., and add them as depends_on in the testsuite container
Then just executing docker-compose up
will see the tests results after all dependencies are running.