Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

מפעילים של Firebase Test Lab

קל לארגן דפים בעזרת אוספים אפשר לשמור ולסווג תוכן על סמך ההעדפות שלך.

אתה יכול להפעיל פונקציה בתגובה להשלמת מטריצת בדיקה ב-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 ...
});