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 tests

  • Quickly audit suite naming and nesting

BoxLang dry-run preview
Dry-run output showing discovered suites and specs without executing them

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.

circle-info

All the same filter parameters (directory, bundles, labels, excludes, testSuites, testSpecs) work alongside dryRun=true in the web runner, just as they do in the CLI.


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:

Option
Dry-Run Behaviour

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

circle-check

Last updated

Was this helpful?