您可以触发一个函数,在 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>