Использование 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