Инструменты модульного тестирования для веб-приложений

  1. Предпосылки
  2. Настройка юнит-тестирования
  3. Конфигурирование конвейера
  4. Подтверждение настройки
  5. Онлайн обучение

Тестирование ускоряет разработку

Модульное тестирование помогает разработчикам убедиться, что их код соответствует заранее заданным требованиям, и найти любые регрессии при обновлении кода.

В идеале написание и запуск модульных тестов происходит на самых ранних этапах разработки, иногда до того, как будет написан какой-либо код. Ваша работа по разработке может быть замедлена, поскольку вы создаете основной набор тестовых случаев. Тем не менее, долгосрочные преимущества в конечном итоге позволяют ускорить разработку, поскольку вам не нужно беспокоиться о регрессах при добавлении новых функций.

Все преимущества модульного тестирования достигаются, когда его можно автоматизировать, чтобы вы могли сосредоточиться на разработке. Чтобы начать модульное тестирование, сконфигурируйте модульное тестирование как тестовое задание в конвейере в службе непрерывной доставки IBM Cloud ™. Тестовое задание может запускать модульные тесты для вашего веб-приложения или мобильного приложения в рамках процесса непрерывной доставки. Эти тесты обеспечивают ценное управление потоком для ваших проектов, выступая в качестве шлюзов для предотвращения развертывания плохого кода.

Предпосылки

  • Учетная запись IBM Cloud, для которой требуется IBMid. Если у вас нет IBMid, вы можете создать его при регистрации.

  • Набор инструментов, содержащий конвейер доставки. Наборы инструментов являются частью службы непрерывной доставки. Вы можете создать простой набор инструментов Cloud Foundry, который включает в себя Delivery Pipeline, выполнив этот урок ,

  • Один или несколько инструментов модульного тестирования. Надлежащее модульное тестирование веб-приложений состоит из двух частей: внешнего, клиентского и внутреннего, серверного. Инструменты, используемые для каждой части, отличаются по функциональности, но они работают вместе, чтобы правильно протестировать ваш код. Подробные сведения о нескольких инструментах модульного тестирования, в том числе о нескольких, упомянутых в инструкциях в этой статье, см. В разделе Связанные инструменты ,

Настройка юнит-тестирования

Создание юнит-теста

Для приложений, созданных с использованием JavaScript и Node.js, вы можете проводить как внешнее, так и внутреннее тестирование, используя Mocha в качестве среды тестирования и Karma в качестве тестера JavaScript. Вы также можете использовать PhantomJS для внешнего тестирования. В этих рамках Chai является библиотекой утверждений, а Sinon предоставляет заглушки, шпионы и издевательства. Общее тестовое покрытие отслеживается Стамбулом.

Для приложений Node.js вы можете создать простой модульный тест, используя Mocha и gulp:

  1. В корневом каталоге вашего приложения создайте файл и назовите его gulpfile.js. В файл включите следующее содержимое:

var gulp = require ('gulp'); var mocha = require ('gulp-mocha'); gulp.task ('mocha-test', function () {return gulp.src ('test / *. js', {read: false}) .pipe (mocha ({globals: ['Ожидаемо]], время ожидания: 3000 , ignoreLeaks: true, пользовательский интерфейс: 'bdd', цвета: true, reporter: 'mocha-jenkins-reporter', reporterOptions: {junit_report_name: 'Mocha Unit Tests', junit_report_path: 'test / mocha-report.xml', junit_report_stack: 1}}));});

Вы можете использовать Eclipse Orion Web IDE для изменения кода.

Вы можете использовать Eclipse Orion Web IDE для изменения кода

Содержимое файла gulpfile.js определяет задачу gulp с именем mocha-test, которая вызывается позже из конвейера. Задача gulp содержит подробную информацию, такую ​​как местоположение запускаемых модульных тестов, test / *. Js, а также имя и местоположение файла, который будет содержать результаты теста, test / mocha-report.xml. Для получения дополнительной информации о том, как настроить задачу gulp, см. глоточная документация ,

  1. Создайте каталог с именем test, где вы сможете хранить все модульные тесты вашего приложения.

  2. В каталоге test создайте файл модульного теста с именем mocha-spec.js. В файл включите следующее содержимое:

var rewire = require ('rewire'); var chai = require ('chai'); varpect = chai.expect; chai.config.includeStack = false; Описание («Мой набор тестов», function () {beforeEach (function () {}); afterEach (function () {}); it («Тестовый набор», функция (выполнено) {Ожидайте (true) .to.be .equal (true); done ();});});

Для получения дополнительной информации о создании модульных тестов Mocha см. Проект мокко ,

  1. На левой боковой панели щелкните значок Git . Зафиксируйте и отправьте изменения в хранилище.

Конфигурирование конвейера

  1. На странице Обзор цепочки инструментов щелкните Конвейер доставки, чтобы получить доступ к конвейеру для вашего приложения.

    Убедитесь, что ваш конвейер имеет этап сборки.

  2. На этапе сборки щелкните значок « Stage Configuration» и нажмите « Configure Stage» .

  3. Перейдите на вкладку JOBS и нажмите ADD JOB . Для типа работы выберите Тест .

  4. Назовите новую работу Unit Tests. Убедитесь, что тип тестера прост.

  5. В окне Test Command включите команды для выбранной вами среды тестирования.

    а. Перечислите все компоненты модульного тестирования для установки.

    npm установить mocha --save-dev
    npm установить mocha-jenkins-reporter --save-dev
    npm установить rewire --save-dev
    npm install chai --save-dev
    npm установить gulp --save-dev
    npm install [email protected] --save-dev

    Кроме того, вы можете включить пакеты для установки в файл package.json вашего приложения в devDependencies:

"devDependencies": {"chai": "^ 3.3.0", "gulp": "^ 3.9.0", "gulp-mocha": "^ 3.0.1", "mocha": "^ 2.3.3" , "mocha-jenkins-reporter": "^ 0.1.9", "rewire": "^ 2.3.4"}

Вы можете заменить команду npm install в окне Test Command.

б. Вызовите задачу gulp для модульного теста, который вы хотите запустить. узел ./node_modules/gulp/bin/gulp mocha-test

  1. Установите флажок Включить тестовый отчет .

  2. Укажите имя для файла отчета о тестировании или используйте предоставленное по умолчанию.

    Примечание. В зависимости от конфигурации вашей инфраструктуры тестирования, имя этого файла может совпадать с тем, которое указано в ваших тестовых примерах. Поскольку это значение было определено в модульном тесте, включите значение test / mocha-report.xml.

  3. Нажмите Сохранить, чтобы вернуться к конвейеру.

Подтверждение настройки

  1. На этапе сборки щелкните значок Run Stage, чтобы повторно запустить этап с использованием новых конфигураций модульного тестирования.

    Убедитесь, что этап сборки проходит успешно. Если этап завершается неудачей, проверьте журналы этапов сборки, внесите необходимые исправления, а затем снова запустите этап.

  2. Чтобы просмотреть результаты ваших модульных тестов, на этапе сборки нажмите Просмотр журналов и истории .

  3. Выберите модульные тесты и перейдите на вкладку ТЕСТЫ, чтобы просмотреть все настроенные модульные тесты.

  4. Нажмите на юнит-тест, чтобы просмотреть его результаты.

  • глоток это бегунок задач JavaScript, который вы можете использовать для автоматизации задач в процессе разработки.

  • кофе мокко это многофункциональный тестовый фреймворк JavaScript, который запускается на Node.js в браузере. Мокко используется для асинхронного тестирования; его тесты выполняются последовательно, чтобы обеспечить гибкую и точную отчетность, в то время как он сопоставляет невыясненные исключения с правильными тестовыми примерами.

  • Карма запускает веб-серверы HTTP, которые могут запускать код JavaScript против тестового кода в любом количестве реальных браузеров. Карма проверяет результаты каждого теста для каждого браузера и отображает результаты с помощью командной строки, чтобы вы могли увидеть, какие браузеры и тесты пройдены или не пройдены.

  • PhantomJS полезен для автономного тестирования веб-приложений. Этот инструмент подходит для общего тестирования на основе командной строки в хуке предварительной фиксации или как часть системы непрерывной интеграции.

  • Chai является библиотекой утверждений для разработки на основе поведения (BDD) и разработки на основе тестирования (TDD) для узла и браузера. Вы можете связать Chai с любой средой тестирования JavaScript. Чай имеет несколько интерфейсов; Вы можете выбрать тот, который работает для вас. Стили BDD с поддержкой цепочек обеспечивают выразительный язык и читаемый стиль, а стиль TDD обеспечивает более классический вид. Вы можете использовать плагины для расширения утверждений Чая в новых контекстах, таких как интеграция поставщиков и построение объектов. Вы можете создавать подключаемые модули для совместного использования с сообществом или использовать шаблон подключаемых модулей, чтобы гарантировать, что тесты не будут повторяться или дублироваться.

  • заново электрифицировать является инжектором зависимостей, который изменяет поведение модуля, чтобы можно было получить лучшие результаты модульного теста. С помощью Rewire вы можете внедрять макеты, манипулировать закрытыми переменными и переопределять переменные в модуле.

  • Sinon.js предоставляет автономные тестовые шпионы, заглушки и макеты для JavaScript. Тестовые шпионы - это функции, которые записывают аргументы, возвращаемые значения и выброшенные значения исключений (если таковые имеются) для всех вызовов. Тестовый шпион может быть анонимной функцией или может обернуть функцию. Тестовые заглушки - это функции (шпионы) с предварительно запрограммированным поведением. Поддельные и ложные ожидания - это фальшивые методы, такие как шпионы, с заранее запрограммированным поведением, такими как заглушки и запрограммированные ожидания. Поскольку нет никаких зависимостей для использования Sinon.js, он может работать с любой структурой модульного тестирования.

  • Стамбул плагин покрытия модульного теста для gulp. Стамбул может работать с любой структурой модульного тестирования Node.js для отслеживания покрытия кода.

Онлайн обучение

Станьте адвокатским курсом «Гаражный метод для облака»

Что дальше