- Qt 6.8
- Qt Test
- Qt 6.8.1 Reference Documentation

# Qt Test

The Qt Test module provides classes for unit testing Qt applications and libraries. All public methods are in the QTest namespace. In addition, the QSignalSpy class provides easy introspection for Qt's signals and slots, and the QAbstractItemModelTester allows for non-destructive testing of item models.

Note: There is no binary compatibility guarantee for the Qt Test module. This means that an application that uses Qt Test is only guaranteed to work with the Qt version it was developed against. However, source compatibility is guaranteed.

## Using the Module

Using a Qt module's C++ API requires linking against the module library, either directly or through other dependencies. Several build tools have dedicated support for this, including CMake and qmake.

### Building with CMake

Use the `find_package()` command to locate the needed module component in the `Qt6` package:

     find_package(Qt6 REQUIRED COMPONENTS Test)
     target_link_libraries(mytarget PRIVATE Qt6::Test)

For more details, see the Build with CMake overview.

### Building with qmake

To configure the module for building with qmake, add the module as a value of the `QT` variable in the project's .pro file:

     QT += testlib

## Articles and Guides

- Qt Test Overview
- Qt Test Best Practices
- Qt Test Tutorial

## Reference

- Qt Test C++ Classes

The Qt Quick Test module enables unit testing of Qt Quick applications.

- Qt Quick Test QML Types
- Qt Quick Test C++ API

## Module Evolution

Changes to Qt Test lists important changes in the module API and functionality that were done for the Qt 6 series of Qt.

## Licenses and Attributions

Qt Test is available under commercial licenses from The Qt Company. In addition, it is available under free software licenses: The GNU Lesser General Public License, version 3, or the GNU General Public License, version 2. See Qt Licensing for further details.

Furthermore, Qt Test in Qt 6.8.1 may contain third party modules under the following permissive licenses:

Catch2, version 2.13.10 | Boost Software License 1.0
Cycle, version 3.3.10 | MIT License
Linux Performance Events, version 6.0 | GNU General Public License v2.0 only with Linux Syscall Note
Valgrind, version 3.23.0 | BSD 4-clause "Original" or "Old" License