Docker


Test Runnerهای ما در قالب ایمیج‌های Docker مستقر می‌شوند.

لطفاً اطلاعات عمومی Docker در Tooling را بخوانید تا با نحوه‌ی کار این‌ها آشنا شوید.

یکپارچه‌سازی

وقتی یک Test Runner را برای تست کردن یک راه‌حل اجرا می‌کنیم، یک فرمان 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 پاس می‌دهیم:

  1. اسلاگ تمرین
  2. مسیر پوشه‌ی راه‌حل
  3. مسیر پوشه‌ی خروجی

قراردادها

همه‌ی Test Runnerهای ما در پیاده‌سازی خود از این قراردادها استفاده می‌کنند:

  • فایل Dockerfile در پوشه‌ی ریشه‌ی مخزن قرار دارد.
  • پوشه‌ی کاری باید /opt/test-runner باشد.
  • نقطه‌ی ورود همان /opt/test-runner/bin/run.sh است.
  • اسکریپت /opt/test-runner/bin/run.sh سه آرگومان می‌گیرد:
    1. اسلاگ تمرین
    2. مسیر پوشه‌ی راه‌حل
    3. مسیر پوشه‌ی خروجی

برای اطلاعات بیشتر، رابط را ببینید.

Note

مخزن‌های جدید Test Runner به‌صورت پیش‌فرض از این قراردادها استفاده می‌کنند.