Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

bdd inspect

Detect the project’s languages, build system, BDD framework, and — critically — whether each language’s runtime is actually installed. The CLI only executes tests when the runtime is present, so inspect tells you up front what will run and what will refuse.

Usage: bdd inspect [OPTIONS]

Flags

Only the global flags (--root, --model).

Detection rules

Marker in the rootLanguageRuntime probed
pom.xmlJava (Maven + Cucumber-JVM)mvn
package.json + tsconfig.jsonTypeScript (Cucumber-JS)node
package.jsonJavaScript (Cucumber-JS)node
*.csproj.NET (Reqnroll)dotnet
Cargo.tomlRust (cucumber-rs)cargo

Examples

A Rust project with the toolchain installed:

bdd inspect
{
  "languages": [
    {
      "language": "rust",
      "bddFramework": "cucumber-rs",
      "runtime": "cargo",
      "runtimePresent": true,
      "runtimeVersion": "cargo 1.97.0"
    }
  ],
  "nextStep": "The runtime is present. 'bdd test' will execute the suite."
}

A Java project without Maven on the PATH:

{
  "languages": [
    {
      "language": "java",
      "bddFramework": "cucumber-jvm",
      "runtime": "mvn",
      "runtimePresent": false,
      "note": "Install Maven (and a JDK) to execute tests; the CLI reports, it never installs."
    }
  ],
  "nextStep": "Install the missing runtime before 'bdd test'; authoring commands still work."
}

An empty directory reports no languages and points you at bdd init.

Notes

  • Authoring commands (spec, feature, scenario, steps, unittest) work without any runtime; only bdd test and the test-running parts of bdd greenfield require one.
  • With multiple markers present (a polyglot root), every detected language is listed.