Инструкция по запуску тестов Qt
Аврора IDE поддерживает создание тестов при помощи Qt-модуля Test.
Qt Test — это среда для модульного тестирования приложений и библиотек на основе Qt. С этим модулем в Аврора IDE можно работать так же, как и в оригинальном Qt.
Для ОС Аврора опубликован пример проекта с тестами QtTest. Данная инструкция иллюстируется фрагментами его конфигурационных файлов.
Конфигурация проекта с тестами
Проект приложения с тестами рекомендуется организовать как проект с поддиректориями.
Одна поддиректория, например app
, будет содержать приложение, вторая — тесты (tests
).
В корневом проекте будет главный pro-файл,
имеющий тип шаблона subdirs
.
В нём подключаются поддиректории проекта
и spec-файл.
TEMPLATE = subdirs
SUBDIRS = app tests
CONFIG += ordered
DISTFILES += \
rpm/ru.auroraos.QtTestUsage.spec
spec-файл будет расположен в корневом проекте, в поддиректориях spec-файлы можно не создавать. В нём следует указать Qt5Test как зависимость сборки:
BuildRequires: pkgconfig(Qt5Test)
В spec-файле также следует дать описание дополнительного пакета с тестами, приложение для тестов не входит в основной пакет.
Можно именовать приложение с тестами на основе названия проекта, используя суффикс Tests
:
%files tests
%defattr(-,root,root,-)
%{_bindir}/%{name}.Tests
Поддиректория с приложением является обычным Аврора-проектом за исключением того, что в ней нет spec-файла.
Подпроект с тестами в pro-файле создаётся по шаблону app
.
Для работы с Qt Test в переменную CONFIG
вместо auroraapp
нужно добавить значения:
console qt testcase no_testcase_installs
.
А сам модуль Test подключить через QT += testlib
.
Также в подпроект необходимо подключить каталог подпроекта приложения через INCLUDEPATH
,
а затем подключить из него тестируемые файлы.
Полный пример pro-файла подпроекта с тестами:
TEMPLATE = app
TARGET = ru.auroraos.QtTestUsage.Tests
target.path = $${PREFIX}/bin
INSTALLS += target
CONFIG += console qt
QT += testlib
CONFIG += testcase
CONFIG += no_testcase_installs
INCLUDEPATH += ../app/
include(../app/app.pri)
SOURCES += \
tests.cpp \
testmyclass.cpp \
HEADERS += \
testmyclass.h \
В примере QtTestUsage создан дополнительный конфигурационный файл app.pri. В нём подключаются исходные файлы тестируемого класса, необходимые в обоих подпроектах:
HEADERS += $$PWD/src/myclass.h
SOURCES += $$PWD/src/myclass.cpp
Запуск тестов
Оба подпроекта в корневом проекте с поддиректориями можно запускать независимо друг от друга. Каждый подпроект в Аврора IDE запускается с помощью того же интерфейса, что и обычный проект.
Тесты можно выполнить, запустив подпроект с именем tests
.
Результат выполнения тестов будет доступен на вкладке Вывод приложения. Пример результата QtTestUsage:
********* Start testing of TestMyClass *********
Config: Using QtTest library 5.6.3, Qt 5.6.3 (i386-little_endian-ilp32-qreal_float shared (dynamic) release build; by GCC 8.3.0 20190222 (Aurora OS gcc 8.3.0-4))
PASS : TestMyClass::initTestCase()
PASS : TestMyClass::testAdd()
PASS : TestMyClass::testMultiply()
PASS : TestMyClass::cleanupTestCase()
Totals: 4 passed, 0 failed, 0 skipped, 0 blacklisted
********* Finished testing of TestMyClass *********