Как отобразить вывод Angular Lint в Jenkins с помощью Junit? - PullRequest
0 голосов
/ 05 июля 2018

Как отобразить результаты "npm lint" в Jenkins? Я знаю, как отобразить результаты «pytest» в Jenkins:

  1. Запустите pytest так: pytest --junitxml=./path/to/pytestFile.xml ./path/to/code
  2. Запустите команду Дженкинса: junit testResults: "./path/to/pytestFile.xml"

Как только я это сделаю, мои результаты теста появятся в окне «Результаты теста» в Jenkins. Я хочу сделать что-то подобное с моими результатами углового линта. Я пытался сделать это, но это не сработало:

  1. Запустите линтера так: npm lint --junitxml=./path/to/lintFile.xml
  2. Запустите команду Дженкинса: junit testResults: "./path/to/lintFile.xml"

Проблема в том, что у npm нет переключателя --junitxml. Как я могу это сделать? Я использую декларативный конвейер Jenkins.

1 Ответ

0 голосов
/ 03 июня 2019

JUnit - это формат результатов теста, а не результатов lint. Нет смысла пытаться его использовать.

Лучший плагин для использования - Предупреждения следующего поколения . Он перечисляет tslint в качестве поддерживаемого формата.

steps {
  sh 'npm run-script --silent -- ng lint --format=checkstyle >checkstyle-result.xml'
}
post {
  always {
    recordIssues tool: tsLint(pattern: 'checkstyle-result.xml'),
                 enableForFailure: true
  }
}

Если в вашей рабочей области несколько проектов, на вас может повлиять # 14659 . Либо укажите один проект, либо направьте вывод через split -l 1.

Как видите, вы получите отчет специально для TSLint, отдельно от других проблем анализа и результатов тестирования. Он также понимает различные уровни серьезности, которые нельзя выразить с помощью JUnit.

generated graphs for TSLint, Test Results and Vulnerabilities

...