Firebase Test Lab 触发器

您可以触发一个函数,在 Firebase Test Lab 中的矩阵测试完成时进行响应。例如,如果测试失败,您可以通知 Slack 频道或发送电子邮件。

在 TestMatrix 完成时触发函数

如需触发 Firebase Test Lab 函数,请使用 firebase-functions/v2/testLab 子软件包。您可以使用 onTestMatrixCompleted() 事件处理脚本,在 TestMatrix 完成时触发函数。

在此示例中,函数会从 CloudEvent 对象中检索 TestMatrix 数据,并将相应的测试结果发送到 Slack 频道:

exports.posttestresultstoslack = onTestMatrixCompleted(
    {secrets: ["SLACK_WEBHOOK_URL"]},
    async (event) => {
    // Obtain Test Matrix properties from the CloudEvent
      const {testMatrixId, state, outcomeSummary} = event.data;

      // Create the title of the message
      const title = `${getSlackmoji(state)} ${getSlackmoji(
          outcomeSummary,
      )} ${testMatrixId}`;

      // Create the details of the message
      const details = `Status: *${state}* ${getSlackmoji(
          state,
      )}\nOutcome: *${outcomeSummary}* ${getSlackmoji(outcomeSummary)}
    `;

      // Post the message to slack
      const slackResponse = await postToSlack(title, details);

      // Log the response
      logger.log(slackResponse);
    });

访问客户端详细信息

测试矩阵可能基于不同的来源或工作流而创建。因此,开发者通常希望创建能够根据测试的来源或其他重要上下文来执行不同操作的函数。为帮助完成此任务,您可以使用 gcloud 在开始测试时传递任意信息,以便稍后可在您的函数中使用。例如:

gcloud beta firebase test android run \
    --app=path/to/app.apk \
    --client-details testType=pr,link=<path/to/pull-request>