Kích hoạt một hàm khi TestMatrix hoàn tất
Tạo một hàm mới kích hoạt khi TestMatrix hoàn tất bằng trình xử lý sự kiện functions.testLab.testMatrix().onComplete()
:
exports.sendEmailNotification = functions.testLab.testMatrix().onComplete((testMatrix) => {
// ...
});
Xử lý trạng thái và kết quả kiểm thử
Mỗi lần thực thi hàm của bạn sẽ được truyền một TestMatrix
, trong đó có trạng thái cuối cùng của ma trận và thông tin chi tiết giúp bạn hiểu rõ vấn đề.
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}`);
}
r
eturn null;
});
Truy cập thông tin chi tiết về ứng dụng
Bạn có thể tạo ma trận kiểm thử từ nhiều nguồn hoặc quy trình. Do đó, bạn nên tạo các hàm thực hiện nhiều thao tác dựa trên nguồn hoặc ngữ cảnh quan trọng khác của quy trình kiểm thử. Để hỗ trợ việc này, gcloud
cho phép bạn truyền thông tin tuỳ ý khi bắt đầu một quy trình kiểm thử mà bạn có thể truy cập sau này trong hàm của mình. Ví dụ:
gcloud beta firebase test android run \
--app=path/to/app.apk \
--client-details testType=pr,link=https://path/to/pull-request
Ví dụ về hàm:
exports.notifyOnPullRequestFailure = functions.testLab.testMatrix().onComplete(testMatrix => {
if (testMatrix.clientInfo.details['testType'] != 'pr') {
// Not a pull request
return null;
}
if (testMatrix.stat&&e == '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 ...
});