Вернуть ненулевой код ошибки из Karma, если покрытие кода не соответствует определенному порогу в Angular 6 - PullRequest
0 голосов
/ 15 февраля 2019

Я хочу, чтобы моя сборка jenkins не работала, когда покрытие кода не соответствует заданному порогу в karma.config.js.Карма должна вернуть ненулевой код ошибки, чтобы нарушить непрерывную интеграцию, если покрытие кода не соответствует определенному порогу.Но в моем случае он завершается с нулевым кодом ошибки и, таким образом, вызывает не провал тестов, если охват кода меньше порога.

Версии

Угловой CLI: 6.0.8

Угловая: 6.1.9

Карма: 1.7.1

Код:

Ниже установлен порог, который я установил внутри karma.config.js

охватИстанинский репортер: {

  dir: require('path').join(__dirname, '../coverage'),
  reports: ['html', 'lcovonly'],
  fixWebpackSourcePaths: true,
  thresholds: {
    statements: 80,
    lines: 80,
    branches: 80,
    functions: 80
  }
}

Я выполняю следующую команду:

ng test --watch false --browsers PhantomJS - покрытие кода

Карма показывает следующееошибка, но возвращается 0 в виде кода ошибки:

ОШИБКА [reporter.coverage-istanbul]: охват для филиалов (70,7%) не соответствует глобальному порогу (80%)

ОШИБКА [репортер.охват-Стамбул]: охват для функций (79,05%) не соответствует глобальному порогу (80%)

ожидаемое поведение

Карма для возврата ненулевого кода ошибки, если покрытие кода не соответствует порогусломать непрерывную интеграцию

Фактическое поведение

Карма выплевываетошибка, но выходит, как обычно, с нулем в качестве кода ошибки

При поиске решения я наткнулся на эту информацию:

"Команды типа ng test, ng serve и ng build --watch, которые работают в режиме наблюденияобычно не завершается с ошибкой.Это сделано специально.

Не наблюдающие команды, такие как ng test --watch=false, ng build и ng e2e, действительно завершают работу с кодом ошибки.

Также не может получиться получить обаавтоматическое отключение и одновременное создание покрытия кода "

Если у кого-то есть какие-либо рекомендации относительно того, как я могу это исправить, или если у кого-то есть какие-либо идеи относительно того, что я могу делать неправильно, пожалуйста, сообщите мне.

...