-
-
Notifications
You must be signed in to change notification settings - Fork 92
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Separate document for test runner building (#519)
- Loading branch information
1 parent
78226ae
commit 9e35a49
Showing
5 changed files
with
67 additions
and
33 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
# Build test runner | ||
|
||
The test runner is an essential bit of tooling that allows: | ||
|
||
- The website to automatically verify if an iteration passes all the tests. | ||
- Students to solve exercises using the [in-browser editor](/docs/using/solving-exercises/using-the-online-editor) ([no CLI needed](/docs/using/solving-exercises/working-locally)). | ||
|
||
To get started building a Test Runner, check the [Creating a Test Runner from scratch](/docs/building/tooling/test-runners/creating-from-scratch) document. | ||
|
||
## Implementation | ||
|
||
Track tooling is usually (mostly) written in the track's language. | ||
|
||
```exercism/caution | ||
While you're free to use other languages, each additional language will make it harder to maintain or contribute to the track. | ||
Therefore, we recommend using the track's language where possible, because it makes maintaining or contributing easier. | ||
``` | ||
|
||
## Deployment | ||
|
||
The test runner is packaged and run as a [Docker container](/docs/building/tooling/docker). | ||
Test runner Docker images are deployed automatically using a [GitHub Actions workflow](https://github.com/exercism/generic-test-runner/blob/main/.github/workflows/docker.yml). | ||
|
||
## Testing | ||
|
||
Once a test runner has been built, you could use its Docker image in your track's CI setup to verify the track's exercises. | ||
The main benefit of this approach is that it better mimics the production setup; in other words, you can be more confident that things also work in production. | ||
A possible downside is that it might slow down the CI workflow. | ||
It is up to you, the maintainer, to decide which approach works best for your track. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,9 +1,12 @@ | ||
# Configure tooling | ||
|
||
There are three bits of tooling that you can optionally tweak for your track: | ||
There are three bits of tooling that you should tweak for your track: | ||
|
||
- The **[Lines of Code Counter](/docs/building/tooling/lines-of-code-counter)** | ||
- The **[Snippet Extractor](/docs/building/tooling/snippet-extractor)** | ||
- The **[Exercism CLI](/docs/building/tooling/cli)** | ||
- The **[Lines of Code Counter](/docs/building/tooling/lines-of-code-counter)**: this tool is tasked with counting the lines of code for each submitted iteration. | ||
- The **[Snippet Extractor](/docs/building/tooling/snippet-extractor)**: this tool extracts a snippet for each iteration, which is shown on the website. | ||
- The **[Exercism CLI](/docs/building/tooling/cli)**: this tool is used by students to work on a track locally, on their own machine. | ||
|
||
While tweaking these tools is optional, doing so can make your track's integration into the website just _that_ bit better. | ||
```exercism/note | ||
Even though tweaking these tools is optional, it'll make your track's integration into the website _much_ better. | ||
Therefore, we highly recommend you tweak all three tools. | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters