{"id":17245185,"url":"https://github.com/axtens/e-t-r","last_synced_at":"2025-06-28T11:06:10.008Z","repository":{"id":116209986,"uuid":"609558041","full_name":"axtens/e-t-r","owner":"axtens","description":null,"archived":false,"fork":false,"pushed_at":"2023-06-08T00:15:47.000Z","size":14334,"stargazers_count":0,"open_issues_count":3,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-03-26T04:44:10.141Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/axtens.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2023-03-04T14:43:14.000Z","updated_at":"2023-04-02T14:18:49.000Z","dependencies_parsed_at":"2024-02-17T11:23:20.071Z","dependency_job_id":"102f649a-bf46-4cc9-8bb3-d5acaf872df1","html_url":"https://github.com/axtens/e-t-r","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":"exercism/generic-test-runner","purl":"pkg:github/axtens/e-t-r","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/axtens%2Fe-t-r","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/axtens%2Fe-t-r/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/axtens%2Fe-t-r/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/axtens%2Fe-t-r/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/axtens","download_url":"https://codeload.github.com/axtens/e-t-r/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/axtens%2Fe-t-r/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262419747,"owners_count":23308098,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-15T06:28:50.172Z","updated_at":"2025-06-28T11:06:09.992Z","avatar_url":"https://github.com/axtens.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Exercism Test Runner Template\n\nThis repository is a [template repository](https://help.github.com/en/github/creating-cloning-and-archiving-repositories/creating-a-template-repository) for creating [test runners][test-runners] for [Exercism][exercism] tracks.\n\n## Using the Test Runner Template\n\n1. Ensure that your track has not already implemented a test runner. If there is, there will be a `https://github.com/exercism/\u003ctrack\u003e-test-runner` repository (i.e. if your track's slug is `python`, the test runner repo would be `https://github.com/exercism/python-test-runner`)\n2. Follow [GitHub's documentation](https://help.github.com/en/github/creating-cloning-and-archiving-repositories/creating-a-repository-from-a-template) for creating a repository from a template repository\n   - Name your new repository based on your language track's slug (i.e. if your track is for Python, your test runner repo name is `python-test-runner`)\n3. Remove this [Exercism Test Runner Template](#exercism-test-runner-template) section from the `README.md` file\n4. Build the test runner, conforming to the [Test Runner interface specification](https://github.com/exercism/docs/blob/main/building/tooling/test-runners/interface.md).\n   - Update the files to match your track's needs. At the very least, you'll need to update `bin/run.sh`, `Dockerfile` and the test solutions in the `tests` directory\n   - Tip: look for `TODO:` comments to point you towards code that need updating\n   - Tip: look for `OPTIONAL:` comments to point you towards code that _could_ be useful\n\nOnce you're happy with your test runner, [open an issue on the exercism/exercism](https://github.com/exercism/exercism/issues/new?assignees=\u0026labels=\u0026template=new-test-runner.md\u0026title=%5BNew+Test+Runner%5D+) to request an official test runner repository for your track.\n\n# Exercism TRACK_NAME_HERE Test Runner\n\nThe Docker image to automatically run tests on TRACK_NAME_HERE solutions submitted to [Exercism].\n\n## Run the test runner\n\nTo run the tests of an arbitrary exercise, do the following:\n\n1. Open a terminal in the project's root\n2. Run `./bin/run.sh \u003cexercise-slug\u003e \u003csolution-dir\u003e \u003coutput-dir\u003e`\n\nOnce the test runner has finished, its results will be written to `\u003coutput-dir\u003e/results.json`.\n\n## Run the test runner on an exercise using Docker\n\n_This script is provided for testing purposes, as it mimics how test runners run in Exercism's production environment._\n\nTo run the tests of an arbitrary exercise using the Docker image, do the following:\n\n1. Open a terminal in the project's root\n2. Run `./bin/run-in-docker.sh \u003cexercise-slug\u003e \u003csolution-dir\u003e \u003coutput-dir\u003e`\n\nOnce the test runner has finished, its results will be written to `\u003coutput-dir\u003e/results.json`.\n\n## Run the tests\n\nTo run the tests to verify the behavior of the test runner, do the following:\n\n1. Open a terminal in the project's root\n2. Run `./bin/run-tests.sh`\n\nThese are [golden tests][golden] that compare the `results.json` generated by running the current state of the code against the \"known good\" `tests/\u003ctest-name\u003e/results.json`. All files created during the test run itself are discarded.\n\nWhen 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/\u003ctest-name\u003e/results.json` file.\n\n## Run the tests using Docker\n\n_This script is provided for testing purposes, as it mimics how test runners run in Exercism's production environment._\n\nTo run the tests to verify the behavior of the test runner using the Docker image, do the following:\n\n1. Open a terminal in the project's root\n2. Run `./bin/run-tests-in-docker.sh`\n\nThese are [golden tests][golden] that compare the `results.json` generated by running the current state of the code against the \"known good\" `tests/\u003ctest-name\u003e/results.json`. All files created during the test run itself are discarded.\n\nWhen 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/\u003ctest-name\u003e/results.json` file.\n\n[test-runners]: https://github.com/exercism/docs/tree/main/building/tooling/test-runners\n[golden]: https://ro-che.info/articles/2017-12-04-golden-tests\n[exercism]: https://exercism.io\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faxtens%2Fe-t-r","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faxtens%2Fe-t-r","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faxtens%2Fe-t-r/lists"}