Мануал по запуску тестов при помощи Karma и Jasmine
Karma
Karma — это консольный инструмент для запуска тестов, который умеет следить за изменениями исходного кода и отображать процент покрытия кода тестами. Настраивается с помощью конфигурационного файла karma.conf.js, в котором нужно указать пути к файлам, которые будут тестироваться, и пути к файлам, содержащие тесты.
Консольные команды
karma init — создаёт базовый шаблон файла конфигурации. Его можно также скачать с репозитория.
karma start — запуск
Jasmine
Jasmine — фреймворк для написания js-тестов.
Основной синтаксис фреймворка:
describe() — оборачивает тесты в test-suite;
beforeEach() и afterEach() — соответственно, запускаются для каждого теста;
it(‘название теста’, function(){}) — сам тест;
iit() и xit() — выделяют тест, чтобы прогнать только его или игнорировать его соответственно.
Пример теста
Установка и настройка компонентов
Скачивать компоненты мы будем с помощью пакетного менеджера npm, который входит в состав Node.js. Он также необходим для работы Karma.
После установки Node.js, переходим в корень проекта, вызываем консоль и поочерёдно выполняем команды. Все скачанные компоненты будут располагаться в каталоге node_modules.
Karma
npm install -g karma-cli
npm install phantomjs -g — эмулятор для тестирования javascript кода.
npm install karma-jasmine karma-chrome-launcher karma-phantomjs-launcher —save — karma-плагины для запуска тестов, написанных на Jasmine, для запуска в браузерах Chrome и PhantomJS.
npm install angular-mocks — библиотека с mock-объектами для сервисов AngularJS. С их помощью мы сможем тестировать работу сервиса $http, не отправляя запросов на сервер.
Jasmine
npm install -g jasmine
Чтобы использовать фреймворк Jasmine, подключите к проекту следующие файлы:
jasmine.js — сам фреймворк;
jasmine-html.js — оформление результатов в виде HTML;
jasmine.css — внешний вид результата выполнения тестов.
Также можно использовать следующие команды:
jasmine init — инициализирует Jasmine проект;
jasmine examples — помещает в Jasmine проект примеры с тестами.
Настройка файла конфигурации Karma
Нужно убедиться, что для Karma прописана переменная среды ОС. Создадим файл с именем karma.conf.js. Для этого нужно в консоли выполнить команду
karma init karma.conf.js.

Параметры karma.config.js:
В скобках () для каждого параметра указано значение по умолчанию:
files([]) — список файлов для загрузки. Массив тех файлов, которые будут подключены в браузер для запуска тестов;
exclude([]) — список исключений для предыдущего пункта;
reporters([‘progress’]) — вариант вывода прогресса;
port(8080) — порт веб-сервера;
runnerPort(9100) — порт клиента;
colors(true) — включение/выключение цветов при выводе лога в консоль;
logLevel(LOG_INFO) — LOG_DISABLE|LOG_ERROR|LOG_WARN|LOG_INFO|LOG_DEBUG;
autoWatch(false) — выполнение тестов при изменении файлов;
browsers([]) — Chrome, ChromeCanary, Firefox, Opera, Safari, PhantomJS;
captureTimeout(5000) — задание таймаута в миллисекундах;
singleRun(false) — для одноразового запуска;
preprocessors({}) — список обработчиков, которые будут применены к файлам, до загрузки в браузер.
Запуск
В консоли выполним команду karma start.
Опубликовано описание проекта «Система учёта логических ресурсов мобильного оператора» Data Driven Testing (содержит 7 примеров использования с рабочих проектов)