Giter Club home page Giter Club logo

zsh-test-runner's Introduction

zsh-test-runner (ztr) GitHub release (latest by date)

Straight-forward tests and coverage reports for zsh and —under zsh's emulation— csh, ksh, and sh

What it features: everything you need for testing zsh scripts.

  • test zsh and, to a degree, csh, ksh, and sh thanks to zsh's emulate builtin
    • optionally give tests descriptive names and additional notes
  • run one or more tests on the command line
  • run one or more tests saved in a test suite file
  • optionally run a setup function before each test
  • optionally run a teardown function after each test
  • skip tests
  • queue tests to run in a batch
    • optionally run a bootstrap function before each batch
    • optionally run a clean function after each batch
  • access cumulative failure, pass, and skip counts as shell variables
  • print coverage summaries with total count, failure count and rate, pass count and rate, and skip count
  • short and gentle learning curve

What it does not feature: its own human language-like declarative test syntax.

There'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 tests and [ ]s.

Documentation

📖 See the guide at https://zsh-test-runner.olets.dev/

Examples

See the examples' README.

Changelog

See CHANGELOG.

Roadmap

See ROADMAP.

Contributing

Looking for the documentation site's source? See https://github.com/olets/zsh-test-runner-docs

Thanks for your interest. Contributions are welcome!

Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.

Check the 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).

Please read CONTRIBUTING.md before opening a pull request.

To test ztr run zsh ./tests/ztr.ztr.zsh

License

zsh-test-runner by Henry Bley-Vroman is licensed under a license which is the unmodified text of CC BY-NC-SA 4.0 and the unmodified text of a Hippocratic License 3. It is not affiliated with Creative Commons or the Organization for Ethical Source.

Human-readable summary of (and not a substitute for) the LICENSE file:

You are free to

  • Share — copy and redistribute the material in any medium or format
  • Adapt — remix, transform, and build upon the material

Under the following terms

  • 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.
  • Non-commercial — You may not use the material for commercial purposes.
  • 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.
  • Preserve terms — If you remix, transform, or build upon the material, you must distribute your contributions under the same license as the original.
  • No additional restrictions — You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits.

zsh-test-runner's People

Contributors

olets avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

zsh-test-runner's Issues

v2.0 release

Release checklist:

  • Update CHANGELOG
  • Create and push v2.0.0 tag

Planned Features (ROADMAP)

Check the branch:next ROADMAP.md to see what work is underway or planned.

Planned features are listed as comments below. You can vote for something by giving it a thumbs up.

👉 New features should not be proposed here. Create a new Issue

This is a side project. If you really want a feature you're welcome to donate. Email me, we can set up https://issuehunt.io/ or something.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.