Skip to content

exercism/rust-test-runner

Folders and files

NameName
Last commit message
Last commit date

Latest commit

d8977f9 · Jul 23, 2023

History

62 Commits
Jun 18, 2021
Jul 23, 2023
Jul 21, 2023
Jul 23, 2023
Dec 22, 2022
Feb 7, 2023
Dec 10, 2021
Jul 23, 2023
Nov 23, 2022
Nov 29, 2022
Sep 2, 2019
Jul 23, 2023
Jul 15, 2020
Dec 10, 2021

Repository files navigation

Rust Test Runner

Run unit tests for the Rust track of Exercism.

See:

General Architecture

  • The test runner itself is a simple shell script: run.sh
  • The rust project in this repo is a filter which transforms Cargo's native testing output to the format expected by Exercism
  • The dockerfile contains a multi-stage build: the first stage builds the test script, and the second stage uses it to run the student's solution and test suite and transform the output appropriately

Run the test runner on an exercise using Docker

This script is provided for testing purposes, as it mimics how test runners run in Exercism's production environment.

To run the tests of an arbitrary exercise using the Docker image, do the following:

  1. Open a terminal in the project's root
  2. Run ./bin/run-in-docker.sh <exercise-slug> <solution-dir> <output-dir>

Once the test runner has finished, its results will be written to <output-dir>/results.json.

Run the tests

To run the tests to verify the behavior of the test runner, do the following:

  1. Open a terminal in the project's root
  2. Run ./bin/run-tests.sh

These are golden tests that compare the results.json generated by running the current state of the code against the "known good" tests/<test-name>/results.json. All files created during the test run itself are discarded.

When you've made modifications to the code that will result in a new "golden" state, you'll need to generate and commit a new tests/<test-name>/results.json file.

Run the tests using Docker

This script is provided for testing purposes, as it mimics how test runners run in Exercism's production environment.

To run the tests to verify the behavior of the test runner using the Docker image, do the following:

  1. Open a terminal in the project's root
  2. Run ./bin/run-tests-in-docker.sh

These are golden tests that compare the results.json generated by running the current state of the code against the "known good" tests/<test-name>/results.json. All files created during the test run itself are discarded.

When you've made modifications to the code that will result in a new "golden" state, you'll need to generate and commit a new tests/<test-name>/results.json file.