FORGEBOX Enterprise 🚀 - Take your ColdFusion (CFML) Development to Modern Times! Learn More...


v4.5.0+5 Public

Total Downloads Latest Stable Version Apache2 License

Copyright Since 2005 TestBox by Luis Majano and Ortus Solutions, Corp

TestBox is a Behavior Driven Development (BDD) and Test Driven Development (TDD) framework for ColdFusion (CFML). It also includes mocking and stubbing capabilities via its internal MockBox library.


Apache License, Version 2.0.


TestBox is maintained under the Semantic Versioning guidelines as much as possible.

Releases will be numbered with the following format:


And constructed with the following guidelines:

  • Breaking backward compatibility bumps the major (and resets the minor and patch)
  • New additions without breaking backward compatibility bumps the minor (and resets the patch)
  • Bug fixes and misc changes bumps the patch

Source Code

Bug Tracking



Community and Support

Join us in our Ortus Community and become a valuable member of this project TestBox BDD. We are looking forward to hearing from you!!

Official Site



You can visit the TestBox documentation page to view all of its features and capabilities. To install TestBox just drop it in your web root as /testbox or create a mapping in your CFML administrator or Application.cfc that points to the directory you installed TestBox and create the mapping /testbox that points to it.

You can also use CommandBox to install and leverage TestBox for commandline executions, test generations, watchers and much more:

Stable Release

box install testbox

Bleeding Edge Release

box install [email protected]

Bleeding edge builds are updated automatically as code is committed.


Because of His grace, this project exists. If you don't like this, then don't read it, its not for you.

"Therefore being justified by faith, we have peace with God through our Lord Jesus Christ: By whom also we have access by faith into this grace wherein we stand, and rejoice in hope of the glory of God. And not only so, but we glory in tribulations also: knowing that tribulation worketh patience; And patience, experience; and experience, hope: And hope maketh not ashamed; because the love of God is shed abroad in our hearts by the Holy Ghost which is given unto us. ." Romans 5:5


"I am the way, and the truth, and the life; no one comes to the Father, but by me (JESUS)" Jn 14:1-12


All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[4.5.0] => 2021-DEC-13


  • TESTBOX-336 When using testSpecs or testSuites via non browser executions decoding is not working
  • TESTBOX-330 Catch spec errors with no type
  • TESTBOX-328 Lucee 5.3.8 reMatchNoCase() change breaks expected execptions
  • TESTBOX-327 Code Coverage in CI only reports on a single file rather than all files
  • TESTBOX-323 Testbox refuses to update to current release
  • TESTBOX-322 Junit reports issues with describe containing "/"


[4.4.0] => 2021-JUN-16


  • TESTBOX-320 Runner tries to instantiate abstract classes
  • TESTBOX-319 Fix HTTP Status Headers Being Removed By Reporters when resetting html head
  • TESTBOX-318 Chaining "not" matchers before regular matchers doesn't work correctly
  • TESTBOX-316 Coverage output doesn't escape ending script tag
  • TESTBOX-315 ConsoleReporter fails with missing functions in assets/text
  • TESTBOX-313 No matching function [SPACE] found
  • TESTBOX-311 CF error variable [THISBUNDLE] doesn't exist when running tests


  • TESTBOX-317 Full Null Support Some items of array can be NULL
  • TESTBOX-314 text and min text whitespace management
  • TESTBOX-301 notToBeBetween seems to be the same as toBeBetween

[4.3.1] => 2021-MAY-25


  • TESTBOX-310 acf regression on caluclating length of arrays with len()

[4.3.0] => 2021-MAY-24


  • TESTBOX-299 Bug in XML-escaping in JUnit reporters
  • TESTBOX-298 min reporter is making assumptions that will exist
  • TESTBOX-297 code coverage QoQ doesn't account for nulls in sum()
  • TESTBOX-287 Simple Reporter doesn't show the Test that fails but the assertion in the origin


  • TESTBOX-305 Show the type of the actual pass into instance type expectations
  • TESTBOX-300 Improvement: shift test summary to the bottom of MinTextReporter
  • TESTBOX-295 Update the junit and antjunit reports to NOT include supported locales due to the size of the packet

New Features

  • TESTBOX-309 Reworked simple reporter to better visualize fail origins and tag contexts.
  • TESTBOX-308 Simple reporter now has editor integrations to open failure and error stacks in your editor
  • TESTBOX-307 New text and min text reporters to improve visualizations
  • TESTBOX-306 Test failures triggered in beforeAll are counted incorrectly

[4.2.1] => 2020-NOV-19


[4.2.0] => 2020-NOV-19


  • TESTBOX-281 - request.testbox: Component ... has no accessible Member with name [$TESTID]
  • TESTBOX-290 - Turning on "Prefix serialized JSON with" in ACF causes issues in code coverage report
  • TESTBOX-293 - Force properties file to have properties extension and escape special chars


  • TESTBOX-291 - refactor usage of locks for debug utility in specs

[4.1.0] => 2020-MAY-27


  • [TESTBOX-283] - Fix type on test results for bundlestats
  • [TESTBOX-286] - DebugBuffer was being removed instead of resetting to empty for getMemento
  • [TESTBOX-281] - request.testbox Component ... has no accessible Member with name [$TESTID]


  • [TESTBOX-282] - Added cfml engine and version as part of the test results as properties
  • [TESTBOX-284] - Update all reporters so they can just build and return the report with no content type or context repsonse resets
  • [TESTBOX-285] - make buildReporter public in the testbox core

$ box install testbox

No collaborators yet.
5.00 / 1
  • {{ getFullDate("2014-05-29T16:22:57Z") }}
  • {{ getFullDate("2021-12-13T23:50:04Z") }}
  • 12,353
  • 1,186,276