trycmd

Snapshot testing for a herd of CLI tests

Documentation License Crates Status

trycmd aims to simplify the process for running a large collection of end-to-end CLI test cases, taking inspiration from trybuild.

Example

Here's a trivial example:

```rust,no_run

[test]

fn ui() { let t = trycmd::TestCases::new(); t.pass("tests/cmd/*.toml"); } ```

See the docs for more.

Relevant crates

For testing command line programs. * assert_cmd for test cases that are individual pets, rather than herd of cattle * escargot for more control over configuring the crate's binary. * duct for orchestrating multiple processes. * or [commandspec] for easier writing of commands * rexpect for testing interactive programs. * assert_fs for filesystem fixtures and assertions. * or tempfile for scratchpad directories. * dir-diff for testing file side-effects.

For snapshot testing: - insta - fn-fixture - runt - turnt - cram

License

Licensed under either of

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.