En

JazzTeam Software Development Company

Agile Java Development

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

, , ,

Leave a Reply

Your email address will not be published. Required fields are marked *