Наші тестові раннери розгортаються як Docker-образи.
Прочитаймо загальну інформацію про Docker в інструментарії, щоб ознайомитися з тим, як вони працюють.
Коли ми запускаємо тестовий раннер, щоб перевірити рішення, ми виконуємо команду Docker, яка має такий вигляд:
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"
Як бачимо, ми передаємо образу Docker три аргументи:
Усі наші тестові раннери використовують у своїй реалізації такі домовленості:
Dockerfile лежить у кореневому каталозі репозиторію./opt/test-runner./opt/test-runner/bin/run.sh
/opt/test-runner/bin/run.sh приймає 3 аргументи:
Щоб дізнатися більше, див. Інтерфейс.
Нові репозиторії тестових раннерів типово використовують ці домовленості.