{"id":17554063,"url":"https://github.com/olets/zsh-test-runner","last_synced_at":"2025-05-03T20:31:50.000Z","repository":{"id":151483732,"uuid":"352080815","full_name":"olets/zsh-test-runner","owner":"olets","description":"Straight-forward tests and coverage reports for zsh and —under zsh's emulation— csh, ksh, and sh. ~200 unique cloners as of July '24","archived":false,"fork":false,"pushed_at":"2024-10-27T00:06:26.000Z","size":185,"stargazers_count":10,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-04-07T21:06:50.454Z","etag":null,"topics":["cli","command-line","coverage","csh","ksh","sh","shell","test-framework","test-reporting","test-runner","testing","unit-testing","zsh"],"latest_commit_sha":null,"homepage":"https://zsh-test-runner.olets.dev/","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/olets.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":"ROADMAP.md","authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-03-27T13:33:06.000Z","updated_at":"2025-03-27T07:57:10.000Z","dependencies_parsed_at":"2023-11-22T02:25:23.442Z","dependency_job_id":"a5f89cb3-debd-4e2f-b0f4-f84e48a4233b","html_url":"https://github.com/olets/zsh-test-runner","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/olets%2Fzsh-test-runner","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/olets%2Fzsh-test-runner/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/olets%2Fzsh-test-runner/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/olets%2Fzsh-test-runner/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/olets","download_url":"https://codeload.github.com/olets/zsh-test-runner/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252252843,"owners_count":21718767,"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":["cli","command-line","coverage","csh","ksh","sh","shell","test-framework","test-reporting","test-runner","testing","unit-testing","zsh"],"created_at":"2024-10-21T06:50:16.674Z","updated_at":"2025-05-03T20:31:44.988Z","avatar_url":"https://github.com/olets.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# zsh-test-runner (ztr) ![GitHub release (latest by date)](https://img.shields.io/github/v/release/olets/zsh-test-runner)\n\n\u003e Straight-forward tests and coverage reports for zsh and —under zsh's emulation— csh, ksh, and sh\n\n**What it features**: everything you need for testing zsh scripts.\n\n-   test [zsh](https://www.zsh.org/) and, to a degree, [csh](https://en.wikipedia.org/wiki/C_shell), [ksh](http://kornshell.com/), and [sh](https://en.wikipedia.org/wiki/Bourne_shell) thanks to zsh's [`emulate`](https://zsh.sourceforge.io/Doc/Release/Shell-Builtin-Commands.html) builtin\n    -   optionally give tests descriptive names and additional notes\n-   run one or more tests on the command line\n-   run one or more tests saved in a test suite file\n-   optionally run a setup function before each test\n-   optionally run a teardown function after each test\n-   skip tests\n-   queue tests to run in a batch\n    -   optionally run a bootstrap function before each batch\n    -   optionally run a clean function after each batch\n-   access cumulative failure, pass, and skip counts as shell variables\n-   print coverage summaries with total count, failure count and rate, pass count and rate, and skip count\n-   short and gentle learning curve\n\n**What it does not feature**: its own human language-like declarative test syntax.\n\nThere's no \"describe\", \"expect\", etc. Downside is the tests don't read like a story. Upside is —because the shell already has rich support for tests— there is nothing idiomatic to learn, there are no artificial limits on what can be tested, the cost to migrating to zsh-test-runner (or from it, if you must) is very low, and there is no risk that assertions were incorrectly implemented. Just write your `[[ ]]`s, `(( ))`s, even your `test`s and `[ ]`s.\n\n## Documentation\n\n📖 See the guide at https://zsh-test-runner.olets.dev/\n\n## Examples\n\nSee the [examples' README](examples/README.md).\n\n## Changelog\n\nSee [CHANGELOG](CHANGELOG.md).\n\n## Roadmap\n\nSee [ROADMAP](ROADMAP.md).\n\n## Contributing\n\n_Looking for the documentation site's source? See \u003chttps://github.com/olets/zsh-test-runner-docs\u003e_\n\nThanks for your interest. Contributions are welcome!\n\n\u003e Please note that this project is released with a [Contributor Code of Conduct](CODE_OF_CONDUCT.md). By participating in this project you agree to abide by its terms.\n\nCheck the [Issues](https://github.com/olets/zsh-test-runner/issues) to see if your topic has been discussed before or if it is being worked on. You may also want to check the roadmap (see above).\n\nPlease read [CONTRIBUTING.md](CONTRIBUTING.md) before opening a pull request.\n\nTo test `ztr` run `zsh ./tests/ztr.ztr.zsh`\n\n## License\n\n\u003ca href=\"https://www.github.com/olets/zsh-test-runner\"\u003ezsh-test-runner\u003c/a\u003e by \u003ca href=\"https://www.github.com/olets\"\u003eHenry Bley-Vroman\u003c/a\u003e is licensed under a license which is the unmodified text of \u003ca href=\"https://creativecommons.org/licenses/by-nc-sa/4.0\"\u003eCC BY-NC-SA 4.0\u003c/a\u003e and the unmodified text of a \u003ca href=\"https://firstdonoharm.dev/build?modules=eco,extr,media,mil,sv,usta\"\u003eHippocratic License 3\u003c/a\u003e. It is not affiliated with Creative Commons or the Organization for Ethical Source.\n\nHuman-readable summary of (and not a substitute for) the [LICENSE](LICENSE) file:\n\nYou are free to\n\n-   Share — copy and redistribute the material in any medium or format\n-   Adapt — remix, transform, and build upon the material\n\nUnder the following terms\n\n-   Attribution — You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use.\n-   Non-commercial — You may not use the material for commercial purposes.\n-   Ethics - You must abide by the ethical standards specified in the Hippocratic License 3 with Ecocide, Extractive Industries, US Tariff Act, Mass Surveillance, Military Activities, and Media modules.\n-   Preserve terms — If you remix, transform, or build upon the material, you must distribute your contributions under the same license as the original.\n-   No additional restrictions — You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Folets%2Fzsh-test-runner","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Folets%2Fzsh-test-runner","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Folets%2Fzsh-test-runner/lists"}