Мануал по запуску тестов при помощи 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.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 примеров использования с рабочих проектов)