четверг, 23 ноября 2017 г.

Учимся тестировать с Karma без нервов.

В этой статье я хочу поделиться своим опытом на тему "Как я учился тестировать с использованием Karma". Как и любой нормальный человек я, решив научиться чему-то новому начал поиски в поисковых системах, и нашел множество древнейших (3-5) летней давности постов, в которых и конфиги для karma уже не те, которые сейчас, да и вообще авторы, почему-то стремятся осветить эту тему именно на своих велосипедных приложениях.

Моей целью является просто поделиться своим рабочим способом, нормальным способом, а не рекламировать себя или какое-либо свое приложение.

Инструментальные требования

Немного хочется рассказать об инструментах, которые я использовал при обучении и Вам тоже советую их использовать.
Операционная система - Linux Ubuntu 15.10 или старше. Почему Linux спросите вы! Потому что я впринципе не люблю Windows если речь идет о разработке! Если у Вас все таки windows вам придется использовать cygwin консоль, у которой множество багов, именно поэтому лучше быть в Linux или MacOS, чтобы не было этих диких проблем с командной строкой!
IDE NetBeans - я использую именно эту IDE и многое будет связано именно с ней, хотя использование именно этой IDE не принципиально. Далее по тексту я буду стараться объяснять почему это не принципиально.

Поехали!

Смысл обучения заключается в том, чтобы развернуть стандартное приложение Angular Seed , которое заранее уже будет содержать в себе тесты, которые мы и будем запускать!

1. Загружаем Angular Seed

Для NetBeans выполняем вот такую последовательность действий Файл-Создать Проект-Приложение HTML5/JS-Указываем имя проекта-Загрузить Интерактивный шаблон-AngularSeed-Готово.
Для других IDE придется скачать Angular Seed с GitHub

2. Устанавливаем необходимые зависимости

Это конечно самый скучный процесс! Придется устанавливать все недостающие в нашей системе пакеты!
Я рассчитываю на то, что в вашей системе уже установлен Node.js, для пользователей linux могут возникнуть проблемы с запуском, скорее всего нужно переименовать папку /usr/bin/nodejs в /usr/bin/node.
Итак, для начала установим саму karma
sudo npm install -g karma
проверим, что все нормально введя karma --help
Далее, для того, чтобы нормально можно было запустить Angular Seed приложение нам нужно установить все недостающие зависимости, для этого нам в системе потребуется менеджер зависимостей bower, установим его
sudo npm install -g bower
Отлично!, теперь в корневой директории нашего приложения запустим сначала команду
sudo npm install
Чтобы установить все npm пакеты, от которых зависит angular seed
sudo bower install
Чтобы установить все зависимые библиотеки .js .css

3. Генерируем конфигурационный файл Karma

В самом шаблоне приложения Angular Seed загруженном с GitHub уже есть файл karma.conf.js - это и есть файл конфигурации, чтобы связать эту конфигурацию с NetBeans выберите в менеджере проектов в вашем проекте там где написано "Karma" пункт "Установить конфигурацию > karma.conf.js". Если у Вас не NetBeans, то ничего делать не нужно!

4. Запуск тестов Karma

Далее, если все прошло хорошо есть два пути запустить тесты Karma.
Первый - нажать кнопочку тестировать на вашем проекте в контекстном меню
Второй перейти в каталог с проектом в командной строке и набрать команду
karma start
Если после запуска этой команды в консоли появилось куча ошибок, о том что не установлены пакеты

17 03 2016 11:40:39.524:WARN [plugin]: Cannot find plugin "karma-chrome-launcher".
  Did you forget to install it ?
  npm install karma-chrome-launcher --save-dev
17 03 2016 11:40:39.528:WARN [plugin]: Cannot find plugin "karma-firefox-launcher".
  Did you forget to install it ?
  npm install karma-firefox-launcher --save-dev
17 03 2016 11:40:39.534:WARN [plugin]: Cannot find plugin "karma-jasmine".
  Did you forget to install it ?
  npm install karma-jasmine --save-dev
17 03 2016 11:40:39.536:WARN [plugin]: Cannot find plugin "karma-junit-reporter".
  Did you forget to install it ?
  npm install karma-junit-reporter --save-dev

Значит npm install их не установила, и я бы советовал Вам поставить эти пакеты вручную и глобально
sudo npm install -g karma-chrome-launcher
sudo npm install -g karma-firefox-launcher
sudo npm install -g karma-jasmine
sudo npm install -g karma-junit-reporter
После этих манипуляций команда karma start должна завершиться успехом и сообщить, что запущено 5 из 5 тестов и все они прошли удачно
Chrome 49.0.2623 (Linux 0.0.0): Executed 5 of 5 SUCCESS (0.072 secs / 0.06 secs)    
Вот впринципе и все! Остается только подробно разобрать синтаксис тестов, и писать свои тесты, ведь запускать их мы уже научились!

Комментариев нет:

Отправить комментарий

Mysql настройка режима

Для настройки режима mysql не обязательно править конфиги можно выполнить команду mysql > set global sql_mode = 'STRICT_TRANS_TAB...