Как запустить ng test перед ng build --prod и выполнить задание jenkins, если ng test не работает?

Раньше я использовал версию angular-cli systemJS, и всякий раз, когда я использовал сборку из jenkins, сборка терпела неудачу, если происходил какой-либо сбой тестового примера.

У меня только что была команда ng build --prod для сборки моего проекта.

Теперь с версией angular-cli для веб-пакета мы должны явно запускать ng test.

Как я могу проверить в jenkins, удалось ли ng test, и продолжить с ng build --prod, иначе сборка завершится ошибкой?


person Gan    schedule 01.11.2016    source источник
comment
ты смог понять как это сделать?   -  person Yousuf    schedule 20.01.2017
comment
Не совсем, однако я использую stage('Unit Test'){sh 'ng test' } перед stage('Prod Build') { sh 'ng build -prod'} в моем Jenkinsfile   -  person Gan    schedule 27.01.2017


Ответы (1)


Вы можете создать скрипт npm, как показано ниже, чтобы завершить сборку в случае сбоя тестов:

"scripts" : {
    "cibuild": "ng test --code-coverage && ng build --prod --no-progress"
 }

Вышеприведенное предполагает, что у вас есть singleRun: true в файле karma.conf.js. Затем вы можете запустить npm run cibuild, который сначала запустит тесты, а затем создаст, только если тесты пройдены. Мы используем это для нашей сборки CI через Jenkins с последующим сканированием Sonar.

person ashish.gd    schedule 05.09.2017
comment
в каком файле находится этот скрипт? - person user230910; 07.09.2017
comment
Вы можете добавить его в package.json. Он содержит раздел «скрипты» для создания ярлыков для более длинных команд. - person ashish.gd; 08.09.2017
comment
Можно ли также обернуть наблюдателя вокруг этого, чтобы он тестировал и строил, а затем наблюдал и повторял непрерывно по мере разработки? - person David Brewer; 14.09.2017
comment
Я полагаю, вы можете просто запустить ng test с single-run:false в вашем karma.conf, чтобы продолжить разработку и тесты с перезагрузкой в ​​реальном времени. Хотя я не уверен, что это именно то, о чем вы спрашиваете. - person ashish.gd; 16.09.2017