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