> For the complete documentation index, see [llms.txt](https://docs.flatredball.com/flatredball/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.flatredball.com/flatredball/contributing/automated-test-project.md).

# Automated Test Project

### Introduction

FlatRedBall includes an automated test project which can be used to verify that your changes have not broken existing projects. This project should be run to verify changes and should also be run prior to monthly releases.

### How to Run the Automated Test Project

1. Clone the FlatRedBall Repository
2. Build/Run Glue from source
3. Open the Automated Test Project in Glue. It can be found here: \<FlatRedBall>\Tests\GlueTestProjectDesktopGl\GlueTestProjectDesktopGl.sln<br>

   <figure><img src="/files/0x7N6RffTx5r0uBcgMTH" alt=""><figcaption><p>Autoamted Test Project in the FRB Editor</p></figcaption></figure>
4. After it has finished generating, open the project in Visual Studio
5. Rebuild the project
6. Run the project
7. Wait for it to finish - it will automatically exit

<figure><img src="/files/eJSzz0ifuXpSyWdFMW4D" alt=""><figcaption><p>Automated test project running</p></figcaption></figure>

If you have an exception, then the project has encountered a failure.

### Automated Test Project Details

At the time of this writing the Automated Test Project is an older project. Specifically it is using:

* .NET 4.7.1
* MonoGame 3.7.0
* glux (xml) [Version 2](/flatredball/glue-reference/glujglux.md)

This is intentional since a number of projects are using modern FlatRedBall versions. For example, at the time of this writing projects are tested by games such as Cranky Chibi Cthulhu and Kid Defense. By contrast, older projects are rarely opened so it is far more likely that these projects may break in response to changes made in Glue or FlatRedBall.

Therefore, this project provides testing coverage which is not offered by modern projects.

Newer projects may be added in the future, but this process is somewhat involved since these new projects should not be synced projects - instead they should be standalone projects, and they should only be added if we have decided to retire a version of FlatRedBall, or if the new project is being added specifically to test a paritcular platform or version (such as FlatRedBall Web).


---

# 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://docs.flatredball.com/flatredball/contributing/automated-test-project.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.
