TestMatrix tamamlandığında bir işlevi tetikleyin
TestMatrix, etkinlik işleyici ile tamamlandığında tetiklenen yeni bir işlev oluşturun
functions.testLab.testMatrix().onComplete()
:
exports.sendEmailNotification = functions.testLab.testMatrix().onComplete((testMatrix) => {
// ...
});
Test durumlarını ve sonuçlarını yönetme
İşlevinizin her yürütme işlemi için bir TestMatrix
iletilir
matrisin son durumunu ve problemleri anlamanıza yardımcı olacak ayrıntıları içerir.
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;
});
İstemci ayrıntılarına erişme
Test matrisleri farklı kaynaklardan veya iş akışlarından oluşturulabilir. Bu nedenle, genellikle
kaynağa veya diğer önemli bağlamlara göre farklı işlemler yapan işlevler oluşturabilirsiniz.
deneyin. Bu konuda yardımcı olmak için gcloud
, test başlatırken rastgele bilgileri aktarmanıza olanak tanır
bu kodu kullanabilirsiniz. Örneğin:
gcloud beta firebase test android run \
--app=path/to/app.apk \
--client-details testType=pr,link=https://path/to/pull-request
Örnek işlev:
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 ...
});