Expand description
A module for getting the crate binary in an integration test.
If you are writing a command-line interface app then it is useful to write an integration test that uses the binary. You most likely want to launch the binary and inspect the output. This module lets you get the binary so it can be tested.
§Examples
basic usage:
ⓘ
let output = test_bin::get_test_bin!("my_cli_app")
.output()
.expect("Failed to start my_binary");
assert_eq!(
String::from_utf8_lossy(&output.stdout),
"Output from my CLI app!\n"
);
Refer to the std::process::Command
documentation
for how to pass arguments, check exit status and more.
NOTE: There is also the older non-macro get_test_bin
which has been
deprecated. I has been deprecated because there is work to allow cargo to
write its output to new paths. See Cargo issue 14125.
The get_test_bin
macro uses the CARGO_BIN_EXE_<name>
environment
variable which was introduced in Rust 1.43 released on 23 April 2020.
Macros§
- get_
test_ bin - tests.
Functions§
- get_
test_ bin Deprecated - Returns the crate’s binary as a
Command
that can be used for integration tests.