#javascript #amazon-web-services #amazon-s3 #cypress
#javascript #amazon-web-services #amazon-s3 #cypress
Вопрос:
Я использую Cypress test, и одна из проверок — получить количество файлов в корзине S3. Но я не могу получить количество файлов в корзине S3.
Ниже приведен код Cypress.
describe('Validate api field validation', () => {
it('Verify objects land in correct AWS S3 bucket', () => {
var date = new Date();
var bucketDirectory = date.getUTCFullYear()
var bucketLocation = Cypress.env('aws_bucketLocation')
cy.log(bucketDirectory)
try{
var ss=getCountOfFiles(bucketLocation,bucketDirectory)
}
catch(err){
cy.log(err)
}
cy.log(ss)
})
}
И ниже приведена функция, которую я использую для получения количества файлов в корзине S3.
const AWS = require("aws-sdk");
const fs = require("fs");
AWS.config.update({
accessKeyId: 'xxxxx',
secretAccessKey: 'yyyyyyy',
region: 'abide',
});
const getCountOfFiles = async (bucketname, prefix) => {
try {
cy.log(bucketname)
cy.log(prefix)
const data = await s3.listObjectsV2({
Bucket: bucketname,
Prefix: prefix, // Limcits response to keys that begin with specified prefix
}).promise().then(mydata => {
return mydata;
})
cy.log('---------')
if (data.$response.error) {
throw new Error('Could not list files in S3: ${data.$response.error}');
}
return data;
} catch {e} {
cy.log(e.message)
//throw new Error('Could not list files in S3: ${e.message}');
}
};
Я пытаюсь распечатать то, что происходит в журнале, но даже я не могу поймать исключение. Я не уверен, где я ошибаюсь.
Все данные идеальны. Это то, что я делаю глупо.
Каталог существует в AWS. Даже если он не существует или что-то не так во входных данных, почему не выводится исключение??
Может кто-нибудь, пожалуйста, помогите мне здесь. Является ли это ограничением Cypress??
Комментарии:
1. Можете ли вы добавить выходные данные журнала, которые вы получаете? Кроме того,
getCountOfFiles
isasync
, поэтому он возвращает обещание2. Большое спасибо JessefSpecialisterren. Здесь нет вывода. Тест cypress зеленого цвета, что указывает на то, что все хорошо. Имя и префикс корзины S3 печатаются и на этом заканчиваются.
3. Я имею в виду, console.log (ss) ничего не печатает. Просто пробел
4. Какой вывод на консоль вы получите, если замените
var ss
строку наgetCountOfFiles(bucketLocation,bucketDirectory).then(data => console.log("Data: ", data))
5. @JessefSpecialisterren — просто {}