Azure DevOps - 发布测试结果后发送电子邮件通知

3
我们有一个每晚定时运行测试并将结果发布到测试运行的流水线。我们可以看到测试运行的URL,因为这是由PublishTestResults@2任务生成的。我想通过电子邮件向一组用户发送DevOps链接来扩展此功能。
以下是当前发布任务的样子:
steps:
  # Publish test results (to show the test details in JUnit format)
  - task: PublishTestResults@2
    displayName: 'Publish test results'
    inputs:
      testResultsFormat: 'JUnit'
      testResultsFiles: '*.xml'
      searchFolder: '$(Build.SourcesDirectory)/cypress/reports/junit'
      mergeTestResults: true
      testRunTitle: 'Publish Test Results'
    condition: succeededOrFailed()
    continueOnError: true

这方面有什么推荐的方法吗?

你有没有研究过通知功能?如果你不需要非常详细的配置选项,这可能是一个简单的方法。例如,你可以在特定构建完成时发送电子邮件:https://learn.microsoft.com/zh-cn/azure/devops/notifications/about-notifications - danielorn
嗨@danielorn,是的,我已经研究了通知,但我不知道如何捕获测试运行的URL。对我来说,使用通知有点“晚”在流程中,这就是为什么我在管道内考虑了一个额外的步骤。我会阅读你发送给我的链接,说不定我能在那里找到一些有用的东西-谢谢。 - dubs
好的,我明白,在发送测试通知的要求中,仅仅使用通知可能不够,你通常会收到指向管道运行本身的链接。为了完全控制,最好在管道中添加一个任务来结束电子邮件。 - danielorn
@dubs 这个工单有没有最新的进展?如果答案能解决这个问题,你可以考虑接受它作为答案。 - Kevin Lu-MSFT
1个回答

10

选项1:通知

如果您只需要指向管道运行本身的链接,您可以配置通知

选项2:电子邮件报告扩展

如果您想要比通知更多的控制权,则可以使用Microsoft DevLabs的电子邮件报告扩展生成(可自定义)报告并发送给包含以下内容的收件人列表:

  • 整体测试摘要:此信息与管道中的“测试”选项卡相同。
  • 测试运行摘要:有关管道中发生的单个测试运行的信息(如果有)。
  • 测试失败:显示测试失败、它们的堆栈跟踪(可在任务输入中配置)和相关工作项。
  • 提交/变更集信息
  • 阶段/环境信息
  • 任务信息:在管道中运行的任务 - 名称、持续时间以及任何错误日志(如果失败)。

您需要提供用于发送电子邮件的SMTP服务器的凭据。

选项3:其他扩展

针对Azure DevOps有许多第三方电子邮件发送扩展

选项4:自定义脚本

当然,还可以创建bash/powershell脚本来发送电子邮件,这是一个简单的PowerShell示例:如何使用PowerShell发送电子邮件


请注意,这个扩展存在许多bug,并且基本上没有人提供支持(请参阅https://github.com/microsoft/azure-devops-engineering-extensions/issues)。另外,我遇到了一个bug - 它会向我的组织中的随机人员发送邮件(尽管这些人与我有密切关系,比如来自我的内部团队)。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接