Google is committed to advancing racial equity for Black communities. See how.
ترجمت واجهة Cloud Translation API‏ هذه الصفحة.
Switch to English

تُشغِّل معمل اختبار Firebase

يمكنك تشغيل وظيفة استجابة لإكمال مصفوفة اختبار في Firebase Test Lab. على سبيل المثال ، يمكنك إخطار قناة Slack أو إرسال بريد إلكتروني إذا فشل الاختبار.

لمزيد من أمثلة حالات الاستخدام ، راجع ما الذي يمكنني فعله مع وظائف السحاب؟ .

قم بتشغيل دالة عند اكتمال TestMatrix

قم بإنشاء دالة جديدة يتم تشغيلها عند اكتمال TestMatrix باستخدام functions.testLab.testMatrix().onComplete() معالج الأحداث functions.testLab.testMatrix().onComplete() :

 exports.sendEmailNotification = functions.testLab.testMatrix().onComplete((testMatrix) => {
  // ...
});
 

التعامل مع حالات الاختبار والنتائج

يتم تمرير كل تنفيذ 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 . فمثلا:

 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 ...
});