قم بتشغيل دالة عند إكمال 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 ...
});