Funktion beim Abschluss von TestMatrix auslösen
Erstellen Sie eine neue Funktion, die ausgelöst wird, wenn eine TestMatrix mit dem Ereignis-Handler functions.testLab.testMatrix().onComplete()
abgeschlossen ist:
exports.sendEmailNotification = functions.testLab.testMatrix().onComplete((testMatrix) => {
// ...
});
Teststatus und ‑ergebnisse verarbeiten
Bei jeder Ausführung Ihrer Funktion wird ein TestMatrix
übergeben, das den endgültigen Status der Matrix und Details zur Problemlösung enthält.
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}`);
}
r
eturn null;
});
Auf Clientdetails zugreifen
Testmatrizen können aus verschiedenen Quellen oder Workflows erstellt werden. Daher ist es oft wünschenswert, Funktionen zu erstellen, die je nach Quelle oder anderem wichtigen Kontext des Tests unterschiedliche Aktionen ausführen. gcloud
bietet Ihnen die Möglichkeit, beim Starten eines Tests beliebige Informationen zu übergeben, auf die später in Ihrer Funktion zugegriffen werden kann. Beispiel:
gcloud beta firebase test android run \
--app=path/to/app.apk \
--client-details testType=pr,link=https://path/to/pull-request
Beispielfunktion:
exports.notifyOnPullRequestFailure = functions.testLab.testMatrix().onComplete(testMatrix => {
if (testMatrix.clientInfo.details['testType'] != 'pr') {
// Not a pull request
return null;
}
if (testMatrix.stat&&e == '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 ...
});