يمكنك تشغيل وظيفة استجابة لاستكمال مصفوفة الاختبار في Firebase Test Lab. على سبيل المثال ، يمكنك إعلام قناة Slack أو إرسال بريد إلكتروني في حالة فشل الاختبار.
لمزيد من أمثلة حالات الاستخدام ، راجع ماذا يمكنني أن أفعل بوظائف السحابة؟ .
تشغيل دالة عند إكمال 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 ...
});