Crate bintest[][src]

Expand description

Testing the build binaries of a bin crate.

Description

‘cargo’ tests by default have no support for running tests on a build binary. This crate solves this.

How It Works

There are some problems to overcome the cargo limitations.

  1. Running cargo tests does not depend on the binary build, by default they are not compiled at test time.
  2. There are no standard facilities to locate and execute the build binaries in a test.

BinTest solve these problems by running ‘cargo build’ at test time, parsing its output for identifying and locating the build binaries. On request it creates a std::process::Command for the binary which can be used for any further testing.

Example

#test fn test() { // BinTest::new() will run ‘cargo build’ and registers all build binaries let bintest = BinTest::new();

// BinTest::command() looks up binary by its name and creates a process::Command from it let command = bintest.command(“name”);

//WIP: this command can then be used for testing

}

Structs

BinTest
Command

A process builder, providing fine-grained control over how a new process should be spawned.

Stdio

Describes what to do with a standard I/O stream for a child process when passed to the stdin, stdout, and stderr methods of Command.