|
8 | 8 | //! Here's a trivial example: |
9 | 9 | //! |
10 | 10 | //! ```rust |
11 | | -//! extern crate assert_cli; |
| 11 | +//! # extern crate assert_cli; |
| 12 | +//! |
12 | 13 | //! assert_cli::assert_cli_output("echo", &["42"], "42").unwrap(); |
13 | 14 | //! ``` |
14 | 15 | //! |
15 | 16 | //! And here is one that will fail: |
16 | 17 | //! |
17 | 18 | //! ```rust,should_panic |
18 | | -//! extern crate assert_cli; |
19 | 19 | //! assert_cli::assert_cli_output("echo", &["42"], "1337").unwrap(); |
20 | 20 | //! ``` |
21 | 21 | //! |
|
25 | 25 | //! -1337 |
26 | 26 | //! +42 |
27 | 27 | //! ``` |
| 28 | +//! |
| 29 | +//! Alternatively, you can use the `assert_cli!` macro: |
| 30 | +//! |
| 31 | +//! ```rust,ignore |
| 32 | +//! assert_cli!("echo 42" => Success, "42").unwrap(); |
| 33 | +//! ``` |
| 34 | +//! |
| 35 | +//! Make sure to include the crate as `#[macro_use] extern crate assert_cli;`. |
| 36 | +
|
28 | 37 |
|
29 | 38 | #![cfg_attr(feature = "dev", feature(plugin))] |
30 | 39 | #![cfg_attr(feature = "dev", plugin(clippy))] |
@@ -127,3 +136,25 @@ pub fn assert_cli_output_error<S>(cmd: &str, |
127 | 136 | }) |
128 | 137 | .map_err(From::from) |
129 | 138 | } |
| 139 | + |
| 140 | +/// The `assert_cli!` macro combines the functionality of the other functions in this crate in one |
| 141 | +/// short macro. |
| 142 | +/// |
| 143 | +/// ```rust,ignore |
| 144 | +/// assert_cli!("echo 42" => Success, "42").unwrap(); |
| 145 | +/// assert_cli!("exit 11" => Error 11, "").unwrap(); |
| 146 | +/// ``` |
| 147 | +/// |
| 148 | +/// Make sure to include the crate as `#[macro_use] extern crate assert_cli;`. |
| 149 | +#[macro_export] |
| 150 | +macro_rules! assert_cli { |
| 151 | + ($cmd:expr, $args:expr => Success, $output:expr) => {{ |
| 152 | + $crate::assert_cli_output($cmd, $args, $output) |
| 153 | + }}; |
| 154 | + ($cmd:expr, $args:expr => Error, $output:expr) => {{ |
| 155 | + $crate::assert_cli_output_error($cmd, $args, None, $output) |
| 156 | + }}; |
| 157 | + ($cmd:expr, $args:expr => Error $err:expr, $output:expr) => {{ |
| 158 | + $crate::assert_cli_output_error($cmd, $args, Some($err), $output) |
| 159 | + }}; |
| 160 | +} |
0 commit comments