TestBox is a next generation testing framework for ColdFusion (CFML) that is based on BDD (Behavior Driven Development) for providing a clean obvious syntax for writing tests. It contains not only a testing framework, runner, assertions and expectations library but also ships with MockBox, A Mocking & Stubbing Framework. It also supports xUnit style of testing and MXUnit compatibilities.
https://www.ortussolutions.com/products/testbox
We have a number of TestBox commands built into CommandBox to make your life easier. Check them out by requesting help
on the testbox
command namespace.
This is an extension of the testbox run
command but will watch the files in a directory and run the default TestBox suite on any file change.
In order for this command to work, you need to have started your server and configured the URL to the test runner in your box.json
.
You can also control what files to watch.
If you need more control over what tests run and their output, you can set additional options in your box.json
which will be picked up automatically by testbox run
when it fires.
This command will run in the foreground until you stop it. When you are ready to shut down the watcher, press Ctrl+C
.
There is a testbox run
command available that will run your unit or integration tests from the command line. All you need is to have your server running (it doesn't have to be a CommandBox server).
Run your test suite like so (modify the runner URL to match your site).
This will hit your runner URL and output a CLI-formatted report of your test results. If your test suite failed, the command will also return a failing status code when being run from your native shell. This makes integrations with CI tools like Jenkins or Travis-CI very easy since a failing test will fail your build automatically.
You can also set up the default runner URL in your box.json and it will be used for you. Setting the URL is a one-time operation.
You can also use a relative path and CommandBox will look up the host and port from your server settings.
The default runner URL of the testbox run
command is /tests/runner.cfm
so there's actually no need to even configure it if you're using the default convention location for your runner.
You can run your tests and post-produce many reporting results, great for CI purposes
You can set arbitrary URL options in our box.json like so
You can set arbitrary URL options when you run the command like so
Both of those examples will include ?opt1=value1&opt2=value2
on the runner URL.
There are a number of settings you can provide to the testbox run
command to control exactly what tests run and how much output is included. Each of these can also be set in your box.json. Run this for more information.
Here is an example of the non-verbose output.
If you run tests on a server with FusionReactor installed and you are using TestBox 2.9 or greater, you will have code coverage reported in the CLI output as a percentage as well as the LOC (lines of code) that were tracked.