راه‌اندازهای «آزمایشگاه آزمایشی» (نسل اول)

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