تشغيل دالة عند إكمال TestMatrix
إنشاء دالة جديدة يتم تشغيلها عند اكتمال TestMatrix مع معالج الحدث
functions.testLab.testMatrix().onComplete()
:
exports.sendEmailNotification = functions.testLab.testMatrix().onComplete((testMatrix) => {
// ...
});
التعامل مع حالات الاختبار ونتائجه
يتم تمرير كل عملية تنفيذ لدالة TestMatrix
تتضمّن الحالة النهائية للمصفوفة وتفاصيل للمساعدة في فهم المسائل.
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;
});
الوصول إلى تفاصيل البرنامج
يمكن إنشاء مصفوفات الاختبار من مصادر مختلفة أو مهام سير عمل مختلفة. لذلك غالبًا ما يكون من المستحسن إنشاء دوال تؤدي إجراءات مختلفة بناءً على المصدر أو سياق مهم آخر للاختبار. للمساعدة في ذلك، تسمح لك السمة gcloud
بتمرير معلومات عشوائية عند بدء اختبار يمكن الوصول إليه لاحقًا في دالتك. على سبيل المثال:
gcloud beta firebase test android run \
--app=path/to/app.apk \
--client-details testType=pr,link=https://path/to/pull-request
مثال على الدالة:
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 ...
});