|
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