【发布时间】:2021-03-27 19:48:04
【问题描述】:
上下文
我正在并行运行 3 个 E2E 测试,我的目标是在其中一个测试失败时向 Slack 发送通知。我尝试了两种方法。
-
e2e完成后,发送通知→但是,这是不可能的,因为当需要的作业(e2e测试作业)失败时作业无法执行。
-
当并行测试之一失败时,发送通知→发送重复通知,
所以每个测试都应该知道其中一个测试是否已经通过环境变量发送了通知。 要实现第二种方法,我应该能够在并行测试(作业)之间共享环境变量。但是,我在 CircleCI 的文档/讨论/支持中找不到任何线索。我能怎么做?而且,如果这是不可能的,我怎么能以骇人听闻的方式做到这一点?
示例
并行测试:A、B、C。
当 A 比 B 和 C 更早完成时,A 将环境变量 isTestFailed 动态设置为 true 并发送 Slack 通知消息。发送后,B和C都完成了,检查isTestFailed 是真的。他们没有发送通知,因为isTestFailed 为真并完成了测试。因此,slack 中只存在一条通知消息。
图表
build ------> e2e test A ------> Send notification to Slack and set boolean flag
------> e2e test B ------> Check boolean flag is true, don't send
------> e2e test C ------> Check boolean flag is true, don't send
谢谢。
【问题讨论】:
标签: circleci