Our Test Runners are deployed as Docker images.
Please read the general Tooling docker information to familiarize yourself with how these work.
When we run a Test Runner to test a solution, we run a Docker command that looks like this:
docker run \
--rm \
--network none \
--mount type=bind,src="${solution_dir}",dst=/solution \
--mount type=bind,src="${output_dir}",dst=/output \
--tmpfs /tmp:rw \
"exercism/${track_slug}-test-runner" \
"${exercise_slug}" "/solution" "/output"
You can see that we pass three arguments to the Docker image:
All our test runners use the following conventions in their implementation:
Dockerfile
is in the repo's root directory./opt/test-runner
./opt/test-runner/bin/run.sh
/opt/test-runner/bin/run.sh
script takes 3 arguments:
For more information see The Interface.
New test runner repos will use these conventions by default.