# trycmd-indygreg-fork This is a soft fork of https://github.com/assert-rs/trycmd that was created after the upstream maintainers didn't accept some PRs. The main differentiating feature is the ability to create alternative file loaders. The hope is that one day a new trycmd like frontend/runner will be created and this fork can be retired. Or upstream can be convinced that the dynamic file loading patches merit being included in trycmd. > Treat your tests like cattle, instead of [pets](https://docs.rs/snapbox) [![Documentation](https://img.shields.io/badge/docs-master-blue.svg)][Documentation] ![License](https://img.shields.io/crates/l/trycmd.svg) [![Crates Status](https://img.shields.io/crates/v/trycmd.svg)](https://crates.io/crates/trycmd) `trycmd` is a test harness that will enumerate test case files and run them to verify the results, taking inspiration from [trybuild](https://crates.io/crates/trybuild) and [cram](https://bitheap.org/cram/). ## Example To create a minimal setup, create a `tests/cli_tests.rs` with ```rust,no_run #[test] fn cli_tests() { trycmd::TestCases::new() .case("tests/cmd/*.toml") .case("README.md"); } ``` and write out your test cases in `.toml` files along with examples in your `README.md`. Run this with `cargo test` like normal. `TestCases` will enumerate all test case files and run the contained commands, verifying they run as expected. See the [docs](http://docs.rs/trycmd) for more. ## Users - [typos](https://github.com/crate-ci/typos) (source code spell checker) - See [port from `assert_cmd`](https://github.com/crate-ci/typos/compare/a8ae8a5..cdfdc4084c928423211c6a80acbd24dbed7108f6) - [cargo-edit](https://github.com/killercup/cargo-edit) (`Cargo.toml` editor) - [clap](https://github.com/clap-rs/clap/) (CLI parser) to test examples ## License Licensed under either of * Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or http://www.apache.org/licenses/LICENSE-2.0) * MIT license ([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT) at your option. ### Contribution Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions. [Crates.io]: https://crates.io/crates/trycmd [Documentation]: https://docs.rs/trycmd