# Unit Tests

_QGroundControl_ (QGC) contains a set of unit tests that must pass before a pull request will be accepted. The addition of new complex subsystems to QGC should include a corresponding new unit test to test it.

The full list of unit tests can be found in [UnitTestList.cc](https://github.com/mavlink/qgroundcontrol/blob/master/src/qgcunittest/UnitTestList.cc).

To run unit tests:

1. Build in `debug` mode with `UNITTEST_BUILD` definition.
2. Copy the **deploy/qgroundcontrol-start.sh** script in the **debug** directory
3. Run _all_ unit tests from the command line using the `--unittest` command line option.
   For Linux this is done as shown:
   ```
   qgroundcontrol-start.sh --unittest
   ```
4. Run _individual_ unit tests by specifying the test name as well: `--unittest:RadioConfigTest`.
   For Linux this is done as shown:
   ```
   qgroundcontrol-start.sh --unittest:RadioConfigTest
   ```