Skip to content

Files

tests

КВАС: Инструкция по проведению тестов

Описывается система тестирования и ее основное компоненты

Основные принципы работы с тестами

  1. Все тесты запускаются удаленно, т.е. не на самом роутере, но скрипты исполняются именно на самом роутере.
  2. Для обеспечения удаленной работы необходимо подключение библиотеки (соответствующий файл с функциями), который находится в файле /apps/kvas/tests/libs/main
  3. Тесты проверяют не только работу функций, как таковых (что они возвращают), но порой и то какие они проводят изменения в системе.

Структура тестов

  1. Основная папка тестов это /apps/kvas/tests
  2. Папка /apps/kvas/tests/libs - содержит библиотечные функции для тестов
  3. Папка /apps/kvas/tests/modules - содержит отдельные тесты по каждому блоку функций
  4. Файл /apps/kvas/tests/modules/test.bats - служит для тестирования текущей задачи

Установка пакета bats

  1. Устанавливаем пакет 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
  1. Создаем папку в корне проекта с названием 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
  1. Далее устанавливаем собранный пакет кваса на роутере
# если квас был ранее установлен на роутере
opkg remove kvas 
opkg install /opt/packages/kvas_Х.Х-beta_ХХ_all.ipk
  1. Переходим в терминал контейнера в папку /apps/kvas/tests
  2. Запускаем файл с полным наборов тестов пакета tests.run
cd /apps/kvas/tests
tests.run