Вступление

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

Дженкинс запускает наши модульные тесты для каждой непрерывной сборки и все модульные тесты и интеграционные тесты для каждой ночной сборки. Желательно иметь быстрый обзор наших тестов, как показано ниже.

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

Конфигурация

Сначала нам нужно установить karma-junit-reporter с помощью следующей команды:

npm install karma-junit-reporter --save-dev

После того, как мы успешно установили karma-junit-reporter, нам нужно настроить junit-reporter внутри нашего karma.conf.js.

Свойства, перечисленные вверху, имеют следующее значение:

  • outputDir: каталог, в котором будет сохранен отчет.
  • набор: название набора.
  • outputFile: Имя файла. Это также имя, которое будет отображаться в Jenkins.
  • useBrowserName: Если установлено значение true, имя браузера добавляется в начало имени файла. Это имеет смысл, если вы запускаете тесты в нескольких браузерах и хотите создать файл для каждого браузера. В нашем случае мы работаем только с Chrome, и поэтому нам не нужно имя браузера.

С помощью этой конфигурации создается файл отчета с именем unit-test.xml. Этот файл имеет следующую структуру:

Важно отметить, что структура этого файла содержит только один уровень вложенности. Даже если у вас есть спецификации, содержащие несколько уровней вложенности (несколько описаний). Причина в том, как Дженкинс интерпретирует сгенерированный отчет.

Но чтобы наши тесты запускались на Jenkins, нам нужно сделать еще кое-что. Дженкинсу нужен pom.xml в качестве точки входа. Нам нужно создать выполнение maven, которое затем выполнит нашу задачу gulp. В этой задаче gulp мы запускаем модульные тесты и создаем наше приложение.

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

Важно отметить, что это свойство состоит из jenkins. executionKey .reportsDirectory.

Наконец, Дженкинс находит наш отчет и правильно отображает результаты.