Blog

12 Days of BoxLang - Day 4: TestBox

Victor Campos December 13, 2025

Spread the word

Victor Campos

December 13, 2025

Spread the word


Share your thoughts

Day 4 of the 12 Days of Christmas: BoxLang + TestBox Next-Level Testing on the CLI 🎄

Today we’re celebrating one of the most exciting new additions to the BoxLang ecosystem:

the TestBox BoxLang CLI Runner — a fast, native way to run your TestBox tests directly through the BoxLang Runtime. ⚡

No server required. No CommandBox needed. Just pure, ultra-fast BoxLang-powered testing from the command lineon Windows, Mac, and Linux.

If you’re building modern applications with BoxLang — web apps, CLIs, serverless functions, Android apps, or OS-level utilities — this new feature gives you a unified, flexible testing workflow you can run anywhere.


🌟 What Is the BoxLang TestBox CLI Runner?

TestBox now ships with a dedicated BoxLang runner that allows you to:

  • Run tests directly using the BoxLang binary
  • Execute tests written in CFML or BoxLang
  • Stream live test progress using -verbose
  • Run specs incredibly fast thanks to the native BoxLang runtime
  • Test multiple BoxLang runtimes (CLI, OS, Android, serverless, etc.)

This is a BoxLang-only feature — taking advantage of BoxLang’s multi-runtime design.

You can test the same code across different environments without switching runtimes or servers. 🚀


🧪 Testing Web Applications? Install Web Support

Because BoxLang is multi-runtime, the CLI runner does not include web support by default.

If you want to test a web application from the CLI (without running a web server), you must install the web support module:

# BoxLang OS Binary
install-bx-module bx-web-support

This provides:

  • BIFs (built-in functions)
  • Components
  • Web request lifecycle behavior
  • A mock HTTP server for full web testing

If your project is web-only, you may prefer the CommandBox TestBox runner, which uses HTTP and behaves like a real web server.

But for CLI-based testing, installing bx-web-support is all you need.


📁 Where the Runner Lives

Inside your TestBox installation:

/testbox/
   run        (Mac/Linux)
   run.bat    (Windows)

These are the entry points for executing tests in the BoxLang runtime.

The runner must be executed from the root of your BoxLang project.


▶️ Running Tests — Examples

Mac / Linux

./testbox/run
./testbox/run my.bundle
./testbox/run --directory=tests.specs
./testbox/run --bundles=my.bundle

Windows

./testbox/run.bat
./testbox/run.bat my.bundle
./testbox/run.bat --directory=tests.specs
./testbox/run.bat --bundles=my.bundle

No server is involved here.

This is pure CLI execution, extremely fast and ideal for automation.


⚙️ Execution Options

Some of the core options include:

Selecting What to Run

  • -bundles — List of bundles to run
  • -bundles-pattern — Pattern for test file names
  • -directory — Directory containing specs (dot notation)
  • -recurse — Recurse folders (default: true)
  • -eager-failure — Fail fast
  • -verbose — Real-time streaming output

Reporting

  • -reporter — Choose reporter
  • -reportpath — Report output directory
  • -write-report — Save report file
  • -write-json-report — Create JSON report
  • -write-visualizer — Save visual HTML report
  • -properties-summary — Generate summary file

Runner Options

You can pass settings directly into the runner:

--runner-optionName=value

This gives you granular control over how the internal runner behaves.

Filtering

  • -labels — Run only certain labels
  • -excludes — Exclude labels
  • -filter-bundles
  • -filter-suites
  • -filter-specsa BoxLang’s runtime is optimized for speed, so tests run in milliseconds.

✔ Multi-environment testing

Test code for CLI tools, Android builds, OS tools, serverless functions — all from the same command.

✔ Test both CFML and BoxLang

Perfect for teams in transition or hybrid codebases.

✔ Fully scriptable in CI/CD

Great for GitHub Actions, GitLab runners, Azure DevOps, Jenkins, etc.

✔ No server required

Unless you're testing web behavior — and even then, the mock server solves it.

It's a massive win for reliability and productivity across the Ortus ecosystem. ✨


Want to Join the BoxLang Modern World?

Become a Pioneer

BoxLang is growing fast features are expanding, the ecosystem is thriving, and performance is turning heads. But the most exciting part? You can be part of shaping it from the very beginning.

The Pioneer Program is your gateway to early access, unmatched support, and unbeatable value. Here’s what you get:

  1. Everything in BoxLang+, and more:
    • Professional support to get you running smoothly
    • A dedicated Slack channel for direct access to our team, solve issues in seconds
    • Priority handling for your feature requests and bug fixes
  2. Migration done with you, not just for you:
    • Our engineers work alongside your team to migrate your apps end-to-end
    • Guaranteed compatibility, we won’t stop until it works perfectly
  3. Big savings, no hidden tricks:
    • At least 40% off your current licensing costs, locked in early, no surprise charges as you grow

Request More Info


Still Not Convinced?

If you’re unsure how BoxLang will work with your applications, or whether it can truly make a difference, we’ve made it easy to see the value for yourself, risk-free:

  1. Free 30-Minute Consultation & App Diagnosis

    We’ll review your applications, identify bottlenecks, and give you a clear modernization plan. You’ll see exactly where you can save time, reduce costs, and unlock new possibilities with BoxLang.

  2. 1-Year Free Non-Production License

    Test-drive BoxLang Premium features in your own environment, no rush, no pressure. Explore advanced capabilities, experiment freely, and experience the benefits firsthand before making any commitments.

Contact Us


🎁 Day X Summary

The TestBox BoxLang CLI Runner brings first-class testing support to the BoxLang ecosystem:

  • Fast, native execution
  • CLI-first workflow
  • Multi-runtime support
  • Optional web testing with web-support module
  • Full reporting, filtering, and runner configuration
  • Works with both CFML and BoxLang tests

This is a key step toward a powerful, modern, unified developer experience — and it’s only the beginning.

More goodies are coming as we continue the 12 Days of Christmas! 🎄🙂

Add Your Comment

Recent Entries

12 days of BoxLang - Day 3: SocketBox!

12 days of BoxLang - Day 3: SocketBox!

As BoxLang continues evolving into a modern, high-performance, JVM-based runtime, real-time communication becomes essential for the applications we all want to build: dashboards, collaboration tools, notifications, live feeds, multiplayer features, and more.

That’s where SocketBox steps in — the WebSocket upgrade listener built to work seamlessly with CommandBox and the BoxLang MiniServer. ⚡

Today, for Day 3, we’re highlighting how SocketBox supercharges BoxLang development by giving you fast, flexible, and framework-agnostic WebSocket capabilities.

Maria Jose Herrera
Maria Jose Herrera
December 12, 2025
12 Days of BoxLang - Day 2: CommandBox

12 Days of BoxLang - Day 2: CommandBox

BoxLang + CommandBox: The Enterprise Engine Behind Your Deployments

For Day 2 of our 12 Days of Christmas series, we’re diving into one of the most powerful parts of the BoxLang ecosystem: CommandBox the defacto enterprise servlet deployment platform for BoxLang.

If BoxLang is the language powering your applications, CommandBox is the engine room behind it all. ⚙️

Victor Campos
Victor Campos
December 11, 2025
12 Days of BoxLang - Day 1: ColdBox

12 Days of BoxLang - Day 1: ColdBox

ColdBox + BoxLang: The Future of Modern MVC on the JVM Welcome to Day 1 of the 12 Days of BoxLang

To kick off the series, we’re starting with one of the most powerful combinations in the Ortus ecosystem: ColdBox + BoxLang.

ColdBox has been the standard for modern CFML MVC development for over a decade. BoxLang is the next-generation dynamic language built for JVM and beyond. Together, they reshape how developers build web apps, APIs, microservices, CLIs, and soon desktop applications.

Let’s dive into why ColdBox 8 + BoxLang PRIME is a major milestone for the future of modern application development.

Maria Jose Herrera
Maria Jose Herrera
December 10, 2025