Crate test_bin

Source
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_binDeprecated
Returns the crate’s binary as a Command that can be used for integration tests.