Crate assert_cmd[][src]

Assert [Command][Command] - Easy command initialization and assertions.

assert_cmd includes support for:

[dependencies]
assert_cmd = "0.9"

Example

Here's a trivial example:

This example is not tested
extern crate assert_cmd;

use std::process::Command;
use assert_cmd::prelude::*;

fn main() {
    let mut cmd = Command::main_binary().unwrap();
    cmd.assert().success();
}

Relevant crates

Other crates that might be useful in testing command line programs.

  • duct for orchestrating multiple processes.
  • assert_fs for filesystem fixtures and assertions.
  • dir-diff for testing file side-effects.
  • tempfile for scratchpad directories.

Migrating from assert_cli v0.6

assert_cmd is the successor to the original assert_cli:

  • More flexible, reusable assertions (also used by assert_fs).
  • Can integrate with other process-management crates, like duct.
  • Addresses several architectural problems.

Key points in migrating from assert_cli:

  • Command is extended with traits rather than being wrapping in custom logic.
  • The command-under-test is run eagerly, with assertions happening immediately.
  • success() is not implicit and requires being explicitly called.
  • stdout/stderr aren't automatically trimmed before being passed to the Predicate.

Re-exports

pub use assert::Assert;
pub use assert::OutputAssertExt;
pub use cargo::CommandCargoExt;

Modules

assert

Output assertions.

cargo

Simplify running bins in a Cargo project.

prelude

Extension traits that are useful to have available.

Structs

OutputError

Command error.

StdInCommand

Command that carries the stdin buffer.

StdInCommandBuilder

For adding a stdin to a Command.

Traits

CommandStdInExt

Write to stdin of a Command.

OutputOkExt

Converts a type to an OutputResult.

Type Definitions

OutputResult

Output represented as a Result.