https://github.com/assert-rs/assert_cmd
Assert process::Command - Easy command initialization and assertions
https://github.com/assert-rs/assert_cmd
Last synced: 3 months ago
JSON representation
Assert process::Command - Easy command initialization and assertions
- Host: GitHub
- URL: https://github.com/assert-rs/assert_cmd
- Owner: assert-rs
- License: apache-2.0
- Created: 2018-05-28T12:42:32.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2024-10-01T14:20:55.000Z (9 months ago)
- Last Synced: 2024-10-31T01:42:46.347Z (8 months ago)
- Language: Rust
- Homepage: https://docs.rs/assert_cmd
- Size: 411 KB
- Stars: 472
- Watchers: 5
- Forks: 35
- Open Issues: 22
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE-APACHE
Awesome Lists containing this project
README
# assert_cmd
> **Assert `process::Command`** - Easy command initialization and assertions.
[][Documentation]

[][Crates.io]`assert_cmd` aims to simplify the process for doing integration testing of CLIs, including:
- Finding your crate's binary to test
- Assert on the result of your program's run.## Example
Here's a trivial example:
```rust,no_run
use assert_cmd::Command;let mut cmd = Command::cargo_bin("bin_fixture").unwrap();
cmd.assert().success();
```See the [docs](http://docs.rs/assert_cmd) for more.
## Relevant crates
Other crates that might be useful in testing command line programs.
* [escargot][escargot] for more control over configuring the crate's binary.
* [duct][duct] for orchestrating multiple processes.
* or [commandspec] for easier writing of commands
* [rexpect][rexpect] for testing interactive programs.
* [`assert_fs`][assert_fs] for filesystem fixtures and assertions.
* or [tempfile][tempfile] for scratchpad directories.
* [dir-diff][dir-diff] for testing file side-effects.
* [cross][cross] for cross-platform testing.[escargot]: http://docs.rs/escargot
[rexpect]: https://crates.io/crates/rexpect
[dir-diff]: https://crates.io/crates/dir-diff
[tempfile]: https://crates.io/crates/tempfile
[duct]: https://crates.io/crates/duct
[assert_fs]: https://crates.io/crates/assert_fs
[commandspec]: https://crates.io/crates/commandspec
[cross]: https://github.com/cross-rs/cross## License
Licensed under either of
* Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or )
* MIT license ([LICENSE-MIT](LICENSE-MIT) or )at your option.
## Testimonials
fitzgen
> assert_cmd is just such a pleasure to use every single time, I fall in love all over again
>
> bravo bravo WG-clipasscod
> Running commands and dealing with output can be complex in many many ways, so assert_cmd smoothing that is excellent, very much welcome, and improves ergonomics significantly.volks73
> I have used [assert_cmd] in other projects and I am extremely pleased with itcoreyja
> [assert_cmd] pretty much IS my testing strategy so far, though my app under test is pretty small.
>
> This library has made it really easy to add some test coverage to my project, even when I am just learning how to write Rust!## 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/assert_cmd
[Documentation]: https://docs.rs/assert_cmd