Version 0.2.0
scenario
Define and test CLI behavior scenarios under controlled terminal conditions.
scenario provides infrastructure for running CLI applications across
different terminal environments — with or without a TTY, at various
terminal widths, with or without color support.
Quick Start
use scenario::{Scenario, Terminal};
// Run a command with piped stdio (no TTY)
let output = Scenario::new("echo")
.arg("hello")
.run()
.unwrap();
assert!(output.stdout().contains("hello"));
// Run in a real PTY with specific dimensions
let output = Scenario::new("my-cli")
.args(["--help"])
.terminal(Terminal::pty(80, 24))
.run()
.unwrap();
// Interactive session
let mut session = Scenario::new("my-cli")
.args(["init"])
.terminal(Terminal::pty(80, 24))
.spawn()
.unwrap();
session.expect("Choose:").unwrap();
session.send_line("default").unwrap();
let output = session.wait().unwrap();
Modules
| Module | Description |
|---|---|
| manifest | Parsing for template.toml manifest files. |
| screen |
Re-exports
pub use error::Erroras Errorpub use key::Keyas Keypub use output::Outputas Outputpub use project::Projectas Projectpub use project::ProjectBuilderas ProjectBuilderpub use scenario::Scenarioas Scenariopub use scenario::SessionConfigas SessionConfigpub use scenario::Terminalas Terminalpub use screen::ScreenBufferas ScreenBufferpub use session::Sessionas Session