Документация
ОС Аврора 5.1.0

Тестирование приложений на машине сборки

С помощью машины сборки и/или эмулятора можно запускать тесты для приложения из командной строки. Запуск тестов не зависит от технологии виртуализации: VirtualBox или Docker.

Тесты можно запустить тремя способами:

  1. Отдельной командой после сборки на машине сборки.
  2. Запуском подпроекта на устройстве или эмуляторе.
  3. Одновременно со сборкой.

Тесты можно собрать на машине сборки и запустить на машине сборки или эмуляторе с помощью утилиты sfdk. Запускать команды из всех описанных инструкций следует на компьютере разработчика.

В данной инструкции используется пример проекта с тестами QtTest. Его структура и запуск в IDE разбираются в статье о Qt-тестах. Тесты в нём располагаются в отдельной поддиректории tests и устанавливаются по пути /usr/bin/ru.auroraos.QtTestUsage.Tests.

Команды в данной инструкции приводятся для Unix-совместимого терминала. В Linux и macOS можно использовать стандартный терминал, в Windows необходимо использовать Git Bash.

Сборка и запуск тестов c помощью sfdk

Для запуска тестов необходимо выполнить следующие шаги. В них подразумевается, что разработчик изначально находится в каталоге для размещения проектов, указанном при установке SDK, и что в этом каталоге располагается проект QtTestUsage.

  1. Указать цель для сборки. Для тестирования можно использовать эмулятор:

    sfdk config target=AuroraOS-<номер_релиза>-base-<архитектура>
    

    Пример:

    sfdk config target=AuroraOS-5.1.0.100-base-x86_64
    
  2. Создать каталог для сборки тестов и переместиться в него:

    mkdir tests.build.x86_64 && cd tests.build.x86_64
    
  3. Собрать подпроект с тестами:

    sfdk build ../QtTestUsage/tests/
    

    В результате в каталоге появятся результаты сборки, в том числе rpm-пакет.

  4. Запустить тесты на машине сборки.

    sfdk build-shell ./tests/ru.auroraos.QtTestUsage.Tests
    

В итоге будут выведены результаты тестирования. Пример для QtTestUsage:

********* Start testing of TestMyClass *********
Config: Using QtTest library 5.6.3, Qt 5.6.3 (x86_64-little_endian-lp64-qreal_float shared (dynamic) release build; by GCC 12.3.1 20230626 (Aurora OS gcc 12.3.1+git2-1.3.4.omp))
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 *********

Запуск тестов на устройстве или эмуляторе

Тесты можно запустить на эмуляторе с помощью тех же команд, которые используются и для сборки-запуска приложения.

  1. Выполнить шаги 1-3 из инструкции про сборку и запуск тестов c помощью sfdk.

  2. Указать устройство для развёртывания. Для тестирования можно использовать эмулятор:

    sfdk config device="Aurora OS эмулятор <номер_релиза>-base"
    

    Пример:

    sfdk config device="Aurora OS эмулятор 5.1.0.100-base"
    
  3. Установить rpm-пакет:

    sfdk deploy --sdk
    
  4. Запустить тесты:

    sfdk device exec /usr/bin/ru.auroraos.QtTestUsage.Tests
    

В итоге будут выведены результаты тестирования. Пример для QtTestUsage:

********* Start testing of TestMyClass *********
Config: Using QtTest library 5.6.3, Qt 5.6.3 (x86_64-little_endian-lp64-qreal_float shared (dynamic) release build; by GCC 12.3.1 20230626 (Aurora OS gcc 12.3.1+git2-1.3.4.omp))
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 *********

Запуск тестов во время сборки

Для запуска тестов во время сборки необходимо в spec-файл добавить раздел %check с командой запуска тестов. Пример для QtTestUsage:

%check
./tests/ru.auroraos.QtTestUsage.Tests

Далее следует собрать проект аналогично инструкции про сборку и запуск тестов c помощью sfdk.

  1. Указать цель для сборки. Для тестирования можно использовать эмулятор:

    sfdk config target=AuroraOS-<номер_релиза>-base-<архитектура>
    

    Пример:

    sfdk config target=AuroraOS-5.1.0.100-base-x86_64
    
  2. Создать каталог для сборки тестов и переместиться в него:

    mkdir tests.build.x86_64 && cd tests.build.x86_64
    
  3. Собрать подпроект с тестами:

    sfdk build ../QtTestUsage/tests/
    

В процессе сборки будут выведены результаты тестирования. Пример для QtTestUsage:

********* Start testing of TestMyClass *********
Config: Using QtTest library 5.6.3, Qt 5.6.3 (x86_64-little_endian-lp64-qreal_float shared (dynamic) release build; by GCC 12.3.1 20230626 (Aurora OS gcc 12.3.1+git2-1.3.4.omp))
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 *********

Мы используем cookies для персонализации сайта и его более удобного использования. Вы можете запретить cookies в настройках браузера.

Пожалуйста ознакомьтесь с политикой использования cookies.