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

Использование Google-тестов

Использование Google-тестов представляет собой запуск тестируемого приложения с подключением библиотеки googletest, содержащей набор тестов. При этом тестирование выполняется автоматически при развертывании приложения. Также доступно выполнение тестов в ручном режиме.

Запуск тестов в автоматическом режиме

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

Основные шаги по сборке проекта с подключением библиотеки тестирования:

  • Загрузить свежую версию проекта Аврора-приложения gtest-using-example:

    git clone https://gitlab.com/AuroraOS/demos/gtest-using-example.git gtest-using-example
    
  • Загрузить свежую версию библиотеки тестирования googletest:

    git clone https://github.com/google/googletest.git googletestlibrary
    
  • Открыть проект gtest-using-example в Аврора IDE и файле gtest-using-example/tests/gtest_dependency.pri заменить значение переменной GOOGLETEST_DIR.

    Для переменной GOOGLETEST_DIR следует указать абсолютный путь к директории с библиотекой тестирования. Например:

        GOOGLETEST_DIR = /home/user/repo/googletestlibrary
    
  • В зависимости от версии Аврора IDE, может потребоваться изменить версию компилятора, который использует данный пример. Для версии Аврора IDE 4.0.2.209 и позднее нужно убедиться, что в проекте в файле /gtest-using-example/tests/tests.pro настроена версия компилятора не ниже 14.

    Значение CONFIG по умолчанию:

    CONFIG += console c++11
    

    заменить на

    CONFIG += console c++14
    
  • Собрать проект стандартными средствами Аврора IDE и запустить его.

    После запуска проекта в окне Аврора IDE будут доступны результаты тестов на панели Результаты тестирования. Тесты, указанные в файле /gtest-using-example/tests/tst_testclasstest.h, будут выполнены автоматически. В случае провала хотя бы одного теста, сборка будет остановлена.

Запуск тестов в ручном режиме

Набор тестов, описанный в /gtest-using-example/tests/tst_testclasstest.h, можно запустить вручную через терминал на эмуляторе или на устройстве.

Основные шаги по запуску тестов в ручном режиме следующие:

  • Создать в директории gtest-using-example файл со сценарием запуска тестов run-test-on-device.sh, содержащий следующие команды:
#!/bin/bash
ADDRESS_STRING=""
KEY_FILE=""
TEST_BINARY_PATH=""
TEST_BINARY_NAME=""
if [ -z $1 ]; then
echo 'Address is empty'
exit 1
fi
if [ -z $2 ]; then
echo 'Key is empty'
exit 1
fi
if [ -z $3 ]; then
echo 'Test binary path is empty'
exit 1
fi
if [ -z $4 ]; then
echo 'Test binary name is empty'
exit 1
fi
ADDRESS_STRING=$1
KEY_FILE=$2
TEST_BINARY_PATH=$3
TEST_BINARY_NAME=$4
scp -i $KEY_FILE $TEST_BINARY_PATH/$TEST_BINARY_NAME $ADDRESS_STRING:/tmp
ssh -i $KEY_FILE $ADDRESS_STRING /tmp/$TEST_BINARY_NAME
  • Сделать скрипт исполняемым:

    chmod +x run-test-on-device.sh
    
  • После выполнения сборки и развертывания приложения на устройстве нужно скопировать скрипт run-test-on-device.sh на эмулятор или устройство и выполнить его.

    Пример для эмулятора:

    scp -P 2223 -i ~/AuroraOS/vmshare/ssh/private_keys/sdk ~/Aurora_projects/build-gtest-example-AuroraOS_4_0_2_249_base_i486_in_Aurora_Build_Engine-Debug/tests/tests defaultuser@localhost:/tmp
    

    Пример для эмулятора:

    ssh -p 2223 -i ~/AuroraOS/vmshare/ssh/private_keys/sdk defaultuser@localhost
    
  • Запустить на эмуляторе или устройстве скрипт и получить результат тестирования.

    [defaultuser@AuroraEmul ~]$ /tmp/tests
    

    Результаты выполнения тестов будут выглядеть аналогично следующим:

[==========] Running 3 tests from 1 test suite.
[----------] Global test environment set-up.
[----------] 3 tests from Alltest
[ RUN      ] Alltest.TestClassTest
[       OK ] Alltest.TestClassTest (0 ms)
[ RUN      ] Alltest.alltrue
[       OK ] Alltest.alltrue (0 ms)
[ RUN      ] Alltest.addTest
[       OK ] Alltest.addTest (0 ms)
[----------] 3 tests from Alltest (0 ms total)
[----------] Global test environment tear-down
[==========] 3 tests from 1 test suite ran. (0 ms total)
[  PASSED  ] 3 tests.

Пример неуспешного теста:

[==========] Running 3 tests from 1 test suite.
[----------] Global test environment set-up.
[----------] 3 tests from Alltest
[ RUN      ] Alltest.TestClassTest
[       OK ] Alltest.TestClassTest (0 ms)
[ RUN      ] Alltest.alltrue
[       OK ] Alltest.alltrue (0 ms)
[ RUN      ] Alltest.addTest
../../gtest-using-example/tests/tst_testclasstest.h:65: Failure
Expected equality of these values:
tc.add(2, 3)
	Which is: 5
7
[  FAILED  ] Alltest.addTest (0 ms)
[----------] 3 tests from Alltest (1 ms total)
[----------] Global test environment tear-down
[==========] 3 tests from 1 test suite ran. (1 ms total)
[  PASSED  ] 2 tests.
[  FAILED  ] 1 test, listed below:
[  FAILED  ] Alltest.addTest
1 FAILED TEST

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

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