Я пытаюсь переименовать скриншоты, созданные для моих неудачных тестов на кипарис. Я последовал примеру документации https://docs.cypress.io/api/plugins/after-screenshot-api.html#Modify -screenshot-details
Для тестирования я использую наборы тестов, предоставленные Cypress.
Переименование файла работает, как Пока я использую строку stati c, но когда я пытаюсь получить доступ к данным из объекта подробностей, таких как отметка времени или старый путь, переименование не выполняется.
Error: ENOENT: no such file or directory, rename 'C:\projects\playground\cypress\screenshots\examples\actions.spec
.js\Actions-- .type() - type into a DOM element (failed).png'
-> 'C:\projects\playground\cypress\mochareports\screenshots\2020-03-16T08.55:09.929Z.png'
Мой код выглядит так
const fs = require('fs')
//Screenshots names can be too long for the file system, taht why we truncate them
module.exports = (on, config) => {
on('after:screenshot', (details) => {
console.log(details) // print all details to terminal
//const fileName = details.takenAt.replace(":",".") +".png"; // This fails
const fileName = details.specName +".1png"; // This fails
console.log(fileName);
//const fileName = "test.png"; // This works
const newPath = "cypress/mochareports/screenshots/"+ fileName;
console.log(newPath);
return new Promise((resolve, reject) => {
// fs.rename moves the file to the existing directory 'new/path/to'
// and renames the image to 'screenshot.png'
fs.rename(details.path, newPath, (err) => {
if (err) return reject(err)
// because we renamed and moved the image, resolve with the new path
// so it is accurate in the test results
resolve({ path: newPath })
})
})
})
}
Что меня смущает, так это то, что в журналах выполнения мои console.logs видны до журналов самого теста:
...
Running: examples\actions.spec.js (1 of 19)
Actions
{
size: 148523,
takenAt: '2020-03-16T08:55:09.929Z',
dimensions: { width: 1280, height: 720 },
multipart: false,
specName: 'examples\\actions.spec.js',
testFailure: true,
path: 'C:\\Projekte\\playground\\cypress\\screenshots\\examples\\actions.spec.js\\Actions -- .type() - type into a DOM element (failed).png',
scaled: true,
blackout: [],
duration: 342
}
2020-03-16T08.55:09.929Z.png
cypress/mochareports/screenshots/2020-03-16T08.55:09.929Z.png
1) .type() - type into a DOM element
√ .focus() - focus on a DOM element (326ms)
...
Если журналы консоли не происходят после выполнения теста , как я добавляю функцию к событию after: screenshot?