מפעילי Firebase Test Lab


הפעל פונקציה עם השלמת 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 ...
});