Я хочу, чтобы моя сборка 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
, действительно завершают работу с кодом ошибки.
Также не может получиться получить обаавтоматическое отключение и одновременное создание покрытия кода "
Если у кого-то есть какие-либо рекомендации относительно того, как я могу это исправить, или если у кого-то есть какие-либо идеи относительно того, что я могу делать неправильно, пожалуйста, сообщите мне.