Google is committed to advancing racial equity for Black communities. See how.
Questa pagina è stata tradotta dall'API Cloud Translation.
Switch to English

Trigger di Firebase Test Lab

È possibile attivare una funzione in risposta al completamento di una matrice di test in Firebase Test Lab. Ad esempio, è possibile avvisare un canale Slack o inviare un'e-mail se un test fallisce.

Per altri casi d'uso di esempio, vedi Cosa posso fare con le funzioni cloud? .

Attiva una funzione al completamento di TestMatrix

Crea una nuova funzione che si innesca quando un TestMatrix si completa con il gestore di eventi functions.testLab.testMatrix().onComplete() :

 exports.sendEmailNotification = functions.testLab.testMatrix().onComplete((testMatrix) => {
  // ...
});
 

Gestire stati e risultati del test

Ad ogni esecuzione della tua funzione viene passato un TestMatrix che include lo stato finale della matrice e i dettagli per aiutare a comprendere i problemi.

 exports.handleTestMatrixCompletion = functions.testLab.testMatrix().onComplete(testMatrix => {
  const matrixId = testMatrix.testMatrixId;
  switch (testMatrix.state) {
    case 'FINISHED':
      console.log(`TestMatrix ${matrixId} finished with outcome: ${testMatrix.outcomeSummary}`);
      break;
    case 'INVALID':
      console.log(`TestMatrix ${matrixId} was marked as invalid: ${testMatrix.invalidMatrixDetails}`);
      break;
    default:
      console.log(`TestMatrix ${matrixId} completed with state ${testMatrix.state}`);
  }
  return null;
});
 

Accedi ai dettagli del cliente

Le matrici di test possono essere create da origini o flussi di lavoro diversi. È quindi spesso desiderabile creare funzioni che eseguano azioni diverse in base alla fonte o ad altri contesti importanti del test. Per aiutarti, gcloud ti consente di passare informazioni arbitrarie quando gcloud un test a cui puoi accedere in seguito nella tua funzione. Per esempio:

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

Esempio di funzione:

 exports.notifyOnPullRequestFailure = functions.testLab.testMatrix().onComplete(testMatrix => {
  if (testMatrix.clientInfo.details['testType'] != 'pr') {
    // Not a pull request
    return null;
  }

  if (testMatrix.state == 'FINISHED' && testMatrix.outcomeSummary == 'SUCCESS') {
    // No failure
    return null;
  }

  const link = testMatrix.clientInfo.details['link'];
  let message = `Test Lab validation for pull request ${link} failed. `;

  if (!!testMatrix.resultStorage.resultsUrl) {
    message += `Test results available at ${testMatrix.resultStorage.resultsUrl}. `;
  }

  // Send notification here ...
});