Docker


テストランナーは、Dockerイメージとしてデプロイされています。

これらの仕組みを理解するために、まずはToolingの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イメージには3つの引数を渡していることがわかります。

  1. 演習のスラッグ
  2. 解答のディレクトリのパス
  3. 出力ディレクトリのパス

規約

すべてのテストランナーは、実装で次の規約に従っています。

  • Dockerfileはリポジトリのルートディレクトリにあります。
  • 作業ディレクトリは/opt/test-runnerにします。
  • エントリーポイントは/opt/test-runner/bin/run.shです。
  • /opt/test-runner/bin/run.shスクリプトは3つの引数を受け取ります。
    1. 演習のスラッグ
    2. 解答のディレクトリのパス
    3. 出力ディレクトリのパス

詳しくはインターフェースを参照してください。

Note

新しいテストランナーのリポジトリは、デフォルトでこの規約に従います。