Ответ 1
Сначала вам нужен файл karma.conf.js
, в котором указано следующее:
reporters: ['progress', 'coverage', 'dots', 'junit'],
junitReporter: {
outputDir: 'karma-results',
outputFile: 'karma-results.xml'
},
browsers: ['PhantomJS'],
singleRun: true
Наиболее важным элементом под клавишей reporters
является junit
. Это надстройка, которая будет транслировать выходы Karma в файл XML. Ваши тестовые выходы должны быть в определенном формате XML, чтобы Дженкинс разбирал его. Вы настраиваете местоположение вывода этого XML файла с помощью клавиши junitReporter
. В ключе browsers
убедитесь, что вы указываете PhantomJS
, поскольку, скорее всего, ваш сервер Jenkins не будет иметь экземпляр Chrome или Firefox. Клавиша singleRun
гарантирует, что сервер Karma запускается до запуска тестов и завершения работы после завершения тестов.
Затем убедитесь, что все следующие модули node установлены на вашем сервере, выполнив следующие команды:
npm install -g karma-cli
npm install -g karma --save-dev
npm install -g phantomjs
npm install -g karma-jasmine --save-dev
npm install -g karma-phantomjs-launcher --save-dev
npm install -g karma-coverage
Посетите ваш сервер Jenkins через браузер. Вы можете связаться с вашим сервером Jenkins на
http://server-ip-address:8080
Прежде чем двигаться вперед, убедитесь, что у вас есть "Environment Injector Plugin" и "Junit Plugin". После этого нажмите New Item
в левой части домашней страницы Jenkins. Для вашей работы задайте следующие параметры:
"Содержимое свойства" позволяет назначить Jenkins PATH на вашем сервере и позволяет использовать ключевое слово karma
в разделе "Команда" под ним. Раздел "Команда" указывает Дженкинсу на компакт-диск в папку, в которой находится ваш файл karma.conf.js
, и запускать Карму.
Если вы используете значения outputDir
и outputFile
в приведенном выше примере karma.conf.js
, вы можете сохранить входное значение "Test report XMLs". В противном случае измените это, чтобы отразить новый путь к тому, где будет создан ваш файл результатов XML.
Теперь, всякий раз, когда вы запускаете это задание в Jenkins, вы сможете узнать, прошел ли он, а также результаты кампании из ваших тестов.