Uma função pode ser acionada em resposta à conclusão de uma matriz de teste no Firebase Test Lab. Se um teste falhar é possível, por exemplo, notificar um canal do Slack ou enviar um e-mail.
Acionar uma função na conclusão da matriz de teste
Para acionar uma função do Firebase Test Lab, use o
subpacote firebase-functions/v2/testLab
. É possível acionar funções quando uma matriz de teste é concluída com o manipulador de eventos onTestMatrixCompleted()
.
Neste exemplo, a função recupera os dados de TestMatrix
do
objeto CloudEvent e envia os
resultados de teste correspondentes para um canal do 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); });
Acessar detalhes do cliente
As matrizes de teste podem ser criadas a partir de diferentes origens ou fluxos de trabalho. Portanto,
é sempre recomendável criar funções que executam ações diferentes
com base na fonte ou em outro contexto importante do teste. Para ajudar com isso,
ao iniciar um teste, use a gcloud
para transmitir informações arbitrárias que podem ser acessadas depois na sua função. Exemplo:
gcloud beta firebase test android run \
--app=path/to/app.apk \
--client-details testType=pr,link=<path/to/pull-request>