Crate testcall[][src]

Expand description

Companinon crate to ‘BinTest’, implements test facilities


A TestCall uses BinTest and std::process::Command to wrap process execution in a way that is ergonomic to use for (repeated) testing. Few more test facilities are provided and will grow in future.

Initial Example

fn myprogram_test() {
    let executables = BinTest::new();
    let mut myprogram = TestCall::new(&executables, "myprogram");

        .assert_stdout_utf8("myprogram 0.1.*");

Panics vs. Results

‘testcall’ is made explicitly for writing tests. To ease this it prefers aborting by panic over error handling. When anything goes wrong the test is aborted and the cause is reported.

Concepts and Facilities

augmenting standard/existing things assert capture regex

Regular Expressions and Captures


Allows setting up and calling programs build by your project through the ‘bintest’ crate or any other executable. Augments ‘std::process::Command’. The result of running tests is collected and returned in a ‘std::process::Output’.


A Trait that augments ‘std::process::Output’ with assertions and regex capturing functions to validate the result of a test run. Note that ‘std::process::Output’ stores the results of a call in memory. Thus testing should not generate excessive outputs (on stdout/stderr).

Future Plans

New features will be added as needed, PR’s are welcome. This is work in progress.


pub use crate::regex::Captured;



A TestCall object binds a BinTest::Command to a single executable and environment and provides functions to call this multiple times.

The handle to background processes



Augment std::process::Output with testing and assertions