Dry Run & Spec Discovery
Discover your test specs and suites without executing any test code — explore what would run before it runs.
TestBox 7 adds a Dry Run mode that traverses all your test bundles, discovers every describe() suite and it() spec (or xUnit test method), and reports what would run — without executing a single line of test code. Use it to:
Verify your test structure before a long CI run
Get an exact count of specs by label, tag, or directory
Preview filter results (
--labels,--bundles, etc.) without the overhead of actually running testsQuickly audit suite naming and nesting

Web Runner — url.dryRun
The standard runner.bxm web runner also supports dry run via a URL parameter:
When dryRun=true the runner bypasses the StreamingRunner path and passes the flag through to the HTML runner, returning the spec discovery tree in the browser instead of executing tests.
BoxLang CLI — --dry-run
Add the --dry-run flag to any ./testbox/run invocation:
The console output groups specs under their parent suites, colour-codes them by type, and prints a summary count at the end.
JSON Dry-Run Output
Pass --dry-run=json to receive a machine-readable structure:
The JSON document shape:
Programmatic Dry Run — tb.dryRun()
You can also trigger a dry run from CFML or BoxLang code via the TestBox instance:
BoxLang
CFML
Programmatic JSON Output
Filtering Respected
Dry run honours all the same filters as a normal test run:
bundles
Limits discovery to specified bundles
directory
Limits discovery to bundles in the given directory
labels
Only specs/suites matching the label(s) are included
excludes
Labels to exclude from discovery
testSuites
Limits to matching suite names
testSpecs
Limits to matching spec names
This means you can validate any filter combination before committing a testbox run.
Use Cases
Pre-flight Check
CI Matrix Planning
Structure Audit
Dry run is a zero-risk way to validate that your TestBox configuration, filter arguments, and bundle structure are correct before a real test run with side effects.
Last updated
Was this helpful?