GTest Runner
Пример Aurora OS приложения, демонстрирующий использование библиотеки gtest для написания модульных тестов.
Условия использования и участия
Исходный код проекта предоставляется по лицензии, которая позволяет использовать его в сторонних приложениях.
Соглашение участника (документ на английском) регламентирует права, предоставляемые участниками компании «Открытая Мобильная Платформа».
Информация об участниках указана в файле AUTHORS.
Кодекс поведения (документ на английском) — это действующий набор правил компании «Открытая Мобильная Платформа», который информирует об ожиданиях по взаимодействию между членами сообщества при общении и работе над проектами.
Структура проекта
Проект имеет стандартную структуру приложения на базе C++ и QML для ОС Аврора. При этом дополнительно проект разбит на подпроекты: app для приложения и tests для модульного тестирования.
- Файл ru.auroraos.GoogleTest.pro описывает общую структуру проекта для системы сборки qmake.
- Подпроект app содержит шаблон приложения.
- Файл app.pro описывает структуру подпроекта app для системы сборки qmake.
- Директория icons содержит иконки приложения для поддерживаемых разрешений экрана.
- Директория qml содержит исходный код на QML и ресурсы интерфейса пользователя.
- Директория cover содержит реализации обложек приложения.
- Директория pages содержит страницы приложения.
- Файл ru.auroraos.GoogleTest.qml предоставляет реализацию окна приложения.
- Директория src содержит исходный код на C++.
- Файл gtest-example.cpp является точкой входа в приложение.
- Файл testclass.cpp содержит тестируемые функции.
- Директория translations содержит файлы перевода интерфейса пользователя.
- Файл ru.auroraos.GoogleTest.desktop определяет отображение и параметры запуска приложения.
- Подпроект tests содержит шаблон модульного тестирования.
- Файл gtest_dependency.pri описывает зависимости, необходимые для работы модульного тестирования.
- Файл tests.pro описывает структуру подпроекта tests для системы сборки qmake.
- Файл tst_testclasstest.h содержит модульные тесты.
- Файл main.cpp является точкой входа для запуска тестов.
- Директория googletest представляет собой директорию с исходниками библиотеки GTest.
- Директория rpm содержит файлы сборки проекта.
Совместимость
Проект совместим с актуальными версиями ОС Аврора.
Для работы с тестами на устройстве требуется отключить валидатор для пакета с тестами.
Примечание. На этапе разработки приложения возможно ручное отключение валидатора (валидации пакетов). При этом дальнейших напоминаний система не выводит. Следует учитывать, что невалидированные пакеты могут быть заблокированы системой на этапе установки. Это может привести к срыву начала промышленной эксплуатации.
Сборка приложения в Aurora SDK
Сборка приложения происходит стандартным образом посредством Aurora SDK через панель конфигурации сборки.
В ходе сборки создаются два отдельных RPM-пакета для самого графического приложения и для модульного тестирования. Это необходимо для раздельного развёртывания подпроектов app и tests и раздельного отслеживания зависимостей. Второй RPM-пакет нужен для запуска тестов и не содержит графических элементов для отображения на целевом устройстве.
Тестирование в Aurora SDK с использованием Google test
Чтобы провести модульное тестирование, нужно запустить собранный проект, выбрав конфигурацию запуска "tests". После этого main.cpp инициализирует GoogleTest и запускает все объявленные тесты.
Результаты тестирования будут находиться в стандартном выводе приложения.
В данном примере модульные тесты написаны в файле tst_testclasstest.h, а сами тестируемые функции в файле testclass.cpp. Запуск Google Test происходит в файле main.cpp.
Чтобы написать новый тест, нужно:
- Подключить к tests.pro файлы тестируемых классов и функций из app
- Создать .cpp файл в проекте tests
- Написать тесты согласно спецификации googletest