КВАС: Инструкция по проведению тестов
Описывается система тестирования и ее основное компоненты
- Все тесты запускаются удаленно, т.е. не на самом роутере, но скрипты исполняются именно на самом роутере.
- Для обеспечения удаленной работы необходимо подключение библиотеки (соответствующий файл с функциями), который находится в файле /apps/kvas/tests/libs/main
- Тесты проверяют не только работу функций, как таковых (что они возвращают), но порой и то какие они проводят изменения в системе.
- Основная папка тестов это /apps/kvas/tests
- Папка /apps/kvas/tests/libs - содержит библиотечные функции для тестов
- Папка /apps/kvas/tests/modules - содержит отдельные тесты по каждому блоку функций
- Файл /apps/kvas/tests/modules/test.bats - служит для тестирования текущей задачи
Установка пакета bats
- Устанавливаем пакет bats на удаленной машине, с которой будет происходить тестирование и на которой размещены исходники пакета Квас (это, как правило, это сервер разработки на Docker или выделенный сервер)
# заходим в контейнер, созданный из образа kvas_develop, на котором происходит разработка проекта.
# детали создания контейнера см в файле [README.md](./build/README.md) внутри папки ./build
cd /usr/local
git clone https://github.com/sstephenson/bats.git
cd bats
./install.sh /usr/local
- Создаем папку в корне проекта с названием debug и в ней файл remove.conf с данными для записи данных на роутере
cd /apps/kvas
mkdir ./debug
cat <<EOF > ./debug/remove.conf
PASSWD=пароль_роутера
PORT=номер_порта на роутере
ROUTER=root@ip_адрес_роутера
EOF
ИЛИ, наилучший вариант, генерируем ключ на сервере разработки, откуда собираемся тестировать пакет и затем копируем публичный ключ в файл /opt/etc/.ssh/authorized_keys на роутере.
- на сервере разработке (на docker машине)
ssh-keygen -t rsa -N "" -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub
# далее копируем содержимое публичного ключа в буфер и переносим его на роутер
- на роутере
# заносим из буфера обмера последней строкой скопированный ключ, это быстрее чем ssh-copy-id
nano /opt/etc/.ssh/authorized_keys
- Далее устанавливаем собранный пакет кваса на роутере
# если квас был ранее установлен на роутере
opkg remove kvas
opkg install /opt/packages/kvas_Х.Х-beta_ХХ_all.ipk
- Переходим в терминал контейнера в папку /apps/kvas/tests
- Запускаем файл с полным наборов тестов пакета tests.run
cd /apps/kvas/tests
tests.run