راهاندازی تابع در تکمیل 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 ...
});