Testland
Browse all skills & agents

qa-cli-tools

CLI + TUI testing tools: 4 skills (bats-testing, cli-output-conventions, pester-cli-testing, tui-snapshot-tester).

Install this plugin

/plugin install qa-cli-tools@testland-qa

qa-cli-tools

CLI + TUI testing tools. Bats-core for shell script + binary exit-code/output assertions, Textual snapshot testing for TUIs (plus equivalents for Ratatui / Bubble Tea / Ink), and the output-conventions skill that defines the assertion contract both consume.

Components

TypeNameDescription
Skillbats-testingBats-core testing for shell scripts and CLIs (@test, run, setup/teardown, parallel, JUnit/TAP).
Skilltui-snapshot-testerTUI snapshot tests via pytest-textual-snapshot + Pilot; equivalents for Ratatui (insta), Bubble Tea (teatest), Ink.
Skillcli-output-conventionsOutput-contract conventions: exit codes, stdout/stderr, --json/--plain, NO_COLOR, -q/--verbose, --help/--version.
Skillpester-cli-testingTest PowerShell CLIs/scripts with Pester v5: Describe/It, Should, Mock, coverage, CI.

Install

/plugin marketplace add testland/qa
/plugin install qa-cli-tools@testland-qa

Skills

bats-testing

Configures Bats-core (Bash Automated Testing System) for testing CLI tools, shell scripts, and Unix programs - `.bats` test files with `@test` blocks, `run` to capture command exit + output, `[ "$status" -eq 0 ]` and `[ "$output" = ... ]` assertions, `setup`/`teardown` hooks, `load` for shared helpers, parallel execution via `--jobs N`, TAP-compliant output for CI integration. Use whenever the unit-under-test is a shell script, CLI binary, or anything invokable from Bash.

cli-output-conventions

Conventions for designing AND testing CLI output so it stays parseable and assertable - exit-code policy (0 success, non-zero failure with stable codes per failure mode), `stdout` for primary data / `stderr` for messages, `--json` / `--plain` for machine-readable output, deterministic ordering and timestamps, `NO_COLOR` / TTY-aware color, `-q` / `--verbose` discipline, and stable `--help` / `--version`. Built on the [Command Line Interface Guidelines][clig]. Use as the assertion contract for `bats-testing` (text CLIs) and to tell `tui-snapshot-tester` what does NOT need a snapshot.

pester-cli-testing

Configures Pester v5 for testing PowerShell CLIs, scripts, and cmdlets - Describe/Context/It blocks, Should assertions, Mock for isolating external dependencies, BeforeAll/BeforeEach setup hooks, Invoke-Pester with PesterConfiguration for tags, code coverage, and NUnit/JUnit XML output in CI. Use when the unit-under-test is a PowerShell script, function, or CLI tool invoked from pwsh on Windows or cross-platform.

tui-snapshot-tester

Snapshot testing for terminal UI apps (TUIs) - captures rendered terminal frames as deterministic SVG / text snapshots, diffs them on every run, surfaces a reviewable HTML report on failure, and supports `--snapshot-update` to accept changes intentionally. Wraps `pytest-textual-snapshot` for Python Textual apps; provides equivalent recipes for Ratatui (Rust) `insta` snapshots, Charm Bracelet (Go) `teatest` golden files, and Ink (Node) `ink-testing-library`. Use for any TUI where layout regressions otherwise reach users via `screenshot looks wrong in terminal`.