Я использую WebdriverIO v4 для создания HTML-отчетов о прохождении / неудаче различных тестов.Я собираю результаты тестов через несколько прослушивателей событий (например, this.on ('test: start'), this.on ('suite: end') и т. Д.).Последним событием является this.on ('end'), которое вызывается, когда все тесты завершили выполнение.Именно здесь результаты теста сортируются в зависимости от того, на какой операционной системе он запущен, браузере и т. Д.
Кажется, проблема в том, что моя программа завершает работу, прежде чем разрешить функции завершить или получить обратный вызов отфункция.
Вот суть моего кода:
let aws = require('aws-sdk');
aws.config.update({
//Censored keys for security
accessKeyId: '*****',
secretAccessKey: '*****',
region: 'us-west-2'
});
let s3 = new aws.S3({
apiVersion: "2006-03-01",
});
/*
*
* Here is where the program generates HTML files
*
*/
//The key and data fields are not actually asterisks, this is just to show that key and data fields are initialized at this point
let key = "****"
let data = "****"
s3.upload({
Bucket: 'html',
Key: key,
Body: data
}, function (err, data) {
if (err) {
console.log("Error: ", err);
}
if (data) {
console.log("Success: ", data.Location);
}
}).on('httpUploadProgress', event => {
console.log(`Uploaded ${event.loaded} out of ${event.total}`);
});
Когда тесты запущены, отображаются результаты, а затем программа завершается.Программа не ожидает возврата, поэтому сообщение об ошибке или об ошибке не отображается.Файлы не загружаются на S3.
Я знаю, что s3.upload()
работает, потому что, если я запускаю код ранее в проекте с фиктивными данными, загрузка завершится успешно.Но в конце моего проекта программа завершается до окончания загрузки.
Как я могу исправить эту проблему?Как я могу гарантировать, что файлы будут загружены на S3 до завершения программы?Как я могу увидеть обратный звонок до завершения?Спасибо!