> For the complete documentation index, see [llms.txt](https://testbox.ortusbooks.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://testbox.ortusbooks.com/v3.x-2/getting-started/installing-testbox.md).

# Installation

TestBox can be downloaded from <https://www.ortussolutions.com/products/testbox> or can be installed via [CommandBox CLI](https://www.ortussolutions.com/products/commandbox). CommandBox is our preferred approach for all package installations, updates and more.

```bash
// latest stable version
box install testbox --saveDev

// latest bleeding edge
box install testbox@be --saveDev
```

{% hint style="info" %}
Please note the `--saveDev` flag which tells CommandBox that TestBox is a development dependency and not a production dependency.
{% endhint %}

This will install TestBox in a *`/testbox`* folder from where you called the command. You can also extract the download zip and place it anywhere you like and create a mapping called \_`/testbox`\_that points to **testbox** in the distribution folder, this is the most secure approach. However, you can just place it in the webroot if you like.

```javascript
this.mappings[ "/testbox" ] = expandPath( "C:/frameworks/testbox/" );
```

You can also clone from [Github](https://github.com/ortus-solutions/testbox) and help us out :)

```javascript
git clone git://github.com/ortus-solutions/testbox testbox
```

Once you have testbox installed, you'll need a quick way to set up a testing harness. The `generate harness` command will add a new `/tests` folder to your application with a few example tests to get you started.

```bash
box testbox generate harness
```

## System Requirements

* Lucee 5.x+&#x20;
* ColdFusion 11+

## What's Included

The download structure includes:

* **apidocs** : The API docs for TestBox
* **system** : The main system framework folder
* **test-browser** : This is a little utility to facilitate navigating big testing suites. This helps navigate to the suites you want and execute them instead of typing all the time.
* **test-harness** : A simplified version of the TestBox runner that can be placed anywhere in your application. It includes an ANT build that allows you to execute your tests and produce results via ANT and also JUnit compliant reports via the junitreport task.
* **test-runner** : The pre-built TestBox Global Runner. You can pass in a directory mapping or bundles and select labels and boom run the tests.
* **test-visualizer:** A static visualizer of json reports.  Just drop in a `test-results.json` and run it!
* **tests** : Several sample tests and runners which actually are used to build TestBox

The only required folder is **system** and it does not need to be web-accessible. The other folders are all optional tools to help you that expect to be web-accessible. You can safely remove everything except the system folder if you want to build your own test browsers. If you are placing TestBox outside of your web root, the `/testbox` mapping needs to point to the parent folder containing the `system` directory as all TestBox models start with `testbox.system` in their package path.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://testbox.ortusbooks.com/v3.x-2/getting-started/installing-testbox.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
