#testing #cypress #slack #circleci
Вопрос:
Я совершенно новичок в тестировании, CircleCI и программной инженерии в целом. Сегодня я провел большую смену, чтобы попытаться написать простой тест Cypress, использовать CircleCI для его запуска каждый час и опубликовать в Slack, был ли он успешным.
С первыми двумя я справился, но интеграция со Slack оказалась сложнее, чем я себе представлял. Я подозреваю, что это потому, что я неправильно понял файл config.yml. Вот код.
version: 2.1
orbs:
node: circleci/node@4.5.1
cypress: cypress-io/cypress@1.28.0
slack: circleci/slack@4.4.2
jobs:
notify:
executor:
name: node/default
steps:
- slack/notify:
channel: general
event: fail
template: basic_fail_1
mentions: '@Jac'
- slack/notify:
channel: general
event: pass
template: success_tagged_deploy_1
mentions: '@Jac'
workflows:
version: 2
commit-workflow:
jobs:
- cypress/run:
record: true
store_artifacts: true
- notify:
context: slack-secrets
thirty-min-workflow:
triggers:
- schedule:
cron: "0,30 * * * *"
filters:
branches:
only:
- main
jobs:
- cypress/run
- notify:
context: slack-secrets
Тесты выполняются нормально, как запланировано, и уведомление начинает замедляться, но уведомление запускается, как только начинается сборка, и не зависит от результатов тестов.
Я ломал голову над этим последним пунктом в течение нескольких часов, так что надеюсь, что это легко исправить!
Ответ №1:
Мне удалось это выяснить. В конце концов, все довольно просто. Я добавил свойство post-steps под cypress/run, которое будет запущено после тестов. Поместив slack/notify под постшагами, он успешно запустился после моих тестов и отразил результат.
Вот файл config.yml.
version: 2.1
orbs:
node: circleci/node@4.5.1
cypress: cypress-io/cypress@1.28.0
slack: circleci/slack@4.4.2
workflows:
version: 2
commit-workflow:
jobs:
- cypress/run:
post-steps:
- slack/notify:
channel: general
event: fail
template: basic_fail_1
mentions: '@Jack'
Ответ №2:
Вы также можете добавить атрибут when в задание cypress и проверить значение on_success, если задание выполнено успешно, а затем запустить задание с уведомлением о замедлении — для получения дополнительной помощи — https://circleci.com/docs/2.0/configuration-reference/#the-when-attribute