Blog

TestBox v2.6.0 Released!

Luis Majano February 06, 2018

Spread the word

Luis Majano

February 06, 2018

Spread the word


Share your thoughts


We are excited to announce the release of TestBox version 2.6.0. To install just do:

box install testbox --savedev

To upgrade your current testbox installation just run the following:

box uninstall testbox && install testbox --savedev

TestBox 2.6.0 is a minor release with some great new functionality and tons of fixes. You can find the release notes here and the major updates for this release.

Chained DSL Improvements

The methods aroundEach(), beforeEach() and afterEach() can now be chained as they return the Base Spec as well. So get funky with the DSL.

Null Support

You can now pass null into an expectation and TestBox will gracefully represent it instead of blowing up!

Method Mocking Performance

Thanks to Pixilation method mocking performance has sky rocketed. He changed the filename generation to an MD5 hash of the code, and disabled removing the files. This allows TestBox to leverage ColdFusion template caching. This reduces the time that $() takes from ~30 ms to ~0 ms. It is a happy day for mocking!

Eager Failures

We have added a new argument to all TestBox run(), runRemote(), runRaw() commands: eagerFailure, which defaults to false. If this is turned on, then TestBox will gracefully short-circuit out of testing further Test Bundles if it finds any failures or errors on previous ones. This is useful for large suites that you want to stop testing if a failure is discovered.

Help for the Color Blind

This was another community driven contribution by Ian Burns - iwburns to help those folks with Color Blindness. You can see the differences in color in the github pull request: https://github.com/Ortus-Solutions/TestBox/pull/60

Before

After

Expanding of x exclusion Methods

You can now prefix the following methods with the letter x to exclude them from execution:

  • story()
  • given()
  • when()
  • then()
  • feature()

There are many more improvements and bug fixes so keep exploring our release notes below!

Release Notes

Bugs

  • [TESTBOX-196] - Assertion argument order does not match testbox.system.assertion for the expected argument
  • [TESTBOX-199] - MockBox method subs are leaking whitespace
  • [TESTBOX-203] - Labels in an it() are ignored
  • [TESTBOX-215] - The recurse checkbox in test-runner doesn't work
  • [TESTBOX-216] - TestBox doesn't handle an interface CFC in the specs folder and chokes

New Features

  • [TESTBOX-195] - Return this from around,beforeEach and afterEach to have a chained DSL thanks to Jose Chavez

Improvements

  • [TESTBOX-200] - Output null representation in output message
  • [TESTBOX-201] - wrap bundle runner execution in try/catch with rethrow
  • [TESTBOX-202] - Improved method mocking performance
  • [TESTBOX-204] - Provide a way to mute debug buffer on marshalled results
  • [TESTBOX-205] - Add eager failure argument to runner so if set and a bundle fails no more bundles are tested after
  • [TESTBOX-208] - Use correct key casing in report output
  • [TESTBOX-210] - switch pass/failed/error colors to help color blindness
  • [TESTBOX-211] - Exclude empty test suites from ANT JUnit Reporting
  • [TESTBOX-212] - Add x- methods to skip suites and specs to new BDD methods.
  • [TESTBOX-214] - Don't re-mock already mocked objects.

Add Your Comment

Recent Entries

12 Days of BoxLang - Day 4: TestBox

12 Days of BoxLang - Day 4: TestBox

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.

Victor Campos
Victor Campos
December 13, 2025
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