Skip to content

CLI

This page is generated from bddkit <command> --help.

Run the feature files the config selects
Usage: bddkit run [OPTIONS] [PATHS]...
Arguments:
[PATHS]... Run only these directories or .feature files instead of the config's `paths`
Options:
--config <CONFIG>
Path to the YAML config [default: $BDDKIT_CONFIG, else ./bddkit.yaml or ./bddkit.yml]
--tag <TAGS>
Run only scenarios with one of these tags (repeatable)
--env <ENV>
Override APP_ENV: selects .env.<name> / .env.<name>.local
--fail-fast
Stop dispatching new files after the first failure
--events <EVENTS>
Write one JSON object per line here while the run happens: a file, a FIFO or /dev/fd/N [default: $BDDKIT_EVENTS]
--evidence
Add evidence to the event stream: resolved values, HTTP exchanges, SQL and plugin diagnostics, also of passing steps. Off by default because it puts bodies and query parameters on disk. Requires --events
--artifacts-dir <ARTIFACTS_DIR>
Root for the evidence files plugins write [default: $BDDKIT_ARTIFACTS_DIR, else <temp dir>/bddkit-<run id>]
--bddkit-dir <BDDKIT_DIR>
Read `.bddkit/` files from this directory only, skipping the shared, user and project layers (overrides $BDDKIT_DIR)
--junit <JUNIT>
Write a JUnit XML report here (one testsuite per feature file)
--cucumber-json <CUCUMBER_JSON>
Write a Cucumber JSON report here
--privacy-reveal
Show real values instead of `***` in everything printed or written [alias: --reveal]
--privacy-min-length <MIN_LENGTH>
Shortest value, in characters, that is masked wherever it appears [default: 7]
--privacy-words <WORDS>
Extra words that make a variable name sensitive (comma-separated, repeatable)
--privacy-words-only <WORDS_ONLY>
Replace the words that make a variable name sensitive
--privacy-fields <FIELDS>
Extra field words that make a JSON key, form field or query parameter sensitive
--privacy-fields-only <FIELDS_ONLY>
Replace the field words that make a key, form field or query parameter sensitive
-h, --help
Print help
Show the steps this binary understands
Usage: bddkit steps [COMMAND]
Commands:
list List the available steps, grouped by resource
help Print this message or the help of the given subcommand(s)
Options:
-h, --help Print help
Examples:
bddkit steps list every builtin step, grouped by resource
bddkit steps list db only the database steps
bddkit steps list --filter response -v narrow, and describe what is left
bddkit steps list --json the same listing, machine-readable
bddkit steps list --config suite.yaml also the steps of that suite's plugins
Check a suite's config, and with --live probe what it talks to
Usage: bddkit doctor [OPTIONS]
Options:
--config <CONFIG>
Path to the YAML config [default: $BDDKIT_CONFIG, else ./bddkit.yaml or ./bddkit.yml]
--env <ENV>
Override APP_ENV: selects .env.<name> / .env.<name>.local
--live
Also open a socket to every API and database the config names
--json
Machine-readable output
--events <EVENTS>
Check that a `run --events` path can be written; a path that exists and is not a regular file (a FIFO, /dev/fd/N) is not opened
--bddkit-dir <BDDKIT_DIR>
Read `.bddkit/` files from this directory only, skipping the shared, user and project layers (overrides $BDDKIT_DIR)
--junit <JUNIT>
Write a JUnit XML report here (one testsuite per feature file)
--cucumber-json <CUCUMBER_JSON>
Write a Cucumber JSON report here
--privacy-reveal
Show real values instead of `***` in everything printed or written [alias: --reveal]
--privacy-min-length <MIN_LENGTH>
Shortest value, in characters, that is masked wherever it appears [default: 7]
--privacy-words <WORDS>
Extra words that make a variable name sensitive (comma-separated, repeatable)
--privacy-words-only <WORDS_ONLY>
Replace the words that make a variable name sensitive
--privacy-fields <FIELDS>
Extra field words that make a JSON key, form field or query parameter sensitive
--privacy-fields-only <FIELDS_ONLY>
Replace the field words that make a key, form field or query parameter sensitive
-h, --help
Print help
Examples:
bddkit doctor --config suite.yaml every static check, no socket opened
bddkit doctor --config suite.yaml --live also probe every API and database
bddkit doctor --config suite.yaml --json the same report, machine-readable
bddkit doctor --config suite.yaml --junit reports/junit.xml
also check that run's report path can be written
Render an event stream (`run --events`) as a report
Usage: bddkit report [OPTIONS] <EVENTS>
Arguments:
<EVENTS> The stream a run wrote with --events
Options:
-o, --output <FILE> Where to write the report; the format follows the extension (.html or .htm). Repeatable [default: the stream's name with .html]
--artifacts <DIR> Where the run's artifacts are, when they are not where `run_started` says
-h, --help Print help
Examples:
bddkit report run.ndjson run.html beside the stream
bddkit report run.ndjson -o out/r.html a named file
Show what a resource's config takes
Usage: bddkit resource [COMMAND]
Commands:
fields List the keys each resource kind's config takes
add Write a validated resource into the config
help Print this message or the help of the given subcommand(s)
Options:
-h, --help Print help
Examples:
bddkit resource fields every resource kind bddkit serves itself
bddkit resource fields db only the database connection keys
bddkit resource fields --config suite.yaml also the groups this suite's plugins serve
bddkit resource fields --json the same listing, machine-readable
bddkit resource add api staging --config suite.yaml --base_url http://staging.local
bddkit resource add db reporting --config suite.yaml --no-check --dsn postgres://...
# --config/--env/--json/--no-check must come before any --<field> value
Find, install, update and remove plugins
Usage: bddkit plugin [OPTIONS] [COMMAND]
Commands:
list Browse the plugin index
install Download a plugin release and register it in a lock file
update Move installed plugins to their latest release
remove Unregister a plugin and delete the files install put there
prune Delete plugin versions that no lock file points into any more
show Show installed plugins, or one plugin in detail
help Print this message or the help of the given subcommand(s)
Options:
--config <CONFIG> Only used to find the project's `.bddkit/` [default: $BDDKIT_CONFIG, else ./bddkit.yaml or ./bddkit.yml]
--bddkit-dir <BDDKIT_DIR> Use this directory only, skipping the shared, user and project layers (overrides $BDDKIT_DIR)
-h, --help Print help
Examples:
bddkit plugin list every plugin in the index
bddkit plugin list mail only those whose name or description matches
bddkit plugin install exec the latest release, into the user layer
bddkit plugin install exec@0.1.0 --layer project.local
bddkit plugin install someone/bddkit-widget
bddkit plugin update --dry-run what would move, without moving it
bddkit plugin show exec one plugin in detail
Replace bddkit and its plugins with another release, with a way back
Usage: bddkit upgrade [OPTIONS]
Options:
--check Show the plan, change nothing
--version <VERSION> Upgrade to this release instead of the latest
--rollback Restore the binary and lock files the last upgrade replaced
--force Upgrade even when a plugin has no release for the new ABI, leaving it as it is
-y, --yes Do not ask: required where there is no terminal
--config <CONFIG> Only used to find the project's `.bddkit/` [default: $BDDKIT_CONFIG, else ./bddkit.yaml or ./bddkit.yml]
--bddkit-dir <BDDKIT_DIR> Use this directory only, skipping the shared, user and project layers (overrides $BDDKIT_DIR)
-h, --help Print help
Examples:
bddkit upgrade --check what would change, changing nothing
bddkit upgrade to the latest release
bddkit upgrade --version 0.4.1 to a given release, older ones included
bddkit upgrade --rollback back to the version the last upgrade replaced
Print the version, and where to look next
Usage: bddkit version [OPTIONS]
Options:
--json Machine-readable: version, target and plugin ABI
-h, --help Print help