cli_testing_specialist/runner/mod.rs
1//! # Runner Module
2//!
3//! Executes BATS (Bash Automated Testing System) test suites and collects results.
4//!
5//! ## Features
6//!
7//! - Parallel test execution with configurable workers
8//! - Timeout management per test file
9//! - TAP (Test Anything Protocol) output parsing
10//! - Category-based test filtering
11//! - Shell compatibility validation
12//!
13//! ## Example Usage
14//!
15//! ```no_run
16//! use cli_testing_specialist::runner::BatsExecutor;
17//! use std::path::Path;
18//!
19//! let executor = BatsExecutor::with_timeout(
20//! "curl".to_string(),
21//! Some("8.7.1".to_string()),
22//! 300, // timeout in seconds
23//! );
24//!
25//! let report = executor.run_tests(Path::new("/path/to/tests"))?;
26//! println!("Tests passed: {}/{}", report.total_passed(), report.total_tests());
27//! # Ok::<(), cli_testing_specialist::error::CliTestError>(())
28//! ```
29//!
30//! ## Category Filtering
31//!
32//! ```no_run
33//! use cli_testing_specialist::runner::BatsExecutor;
34//! use std::path::Path;
35//!
36//! // Skip resource-intensive tests
37//! let executor = BatsExecutor::with_timeout(
38//! "kubectl".to_string(),
39//! Some("1.28.0".to_string()),
40//! 300,
41//! ).with_skip_categories(vec![
42//! "directory-traversal".to_string(),
43//! "performance".to_string(),
44//! ]);
45//!
46//! let report = executor.run_tests(Path::new("/path/to/tests"))?;
47//! # Ok::<(), cli_testing_specialist::error::CliTestError>(())
48//! ```
49
50pub mod bats_executor;
51
52// Re-export main executor
53pub use bats_executor::BatsExecutor;