Как сделать скриншот в транспортире на провал тестовых случаев
Я новичок в транспортире и хотел бы сделать скриншоты моих неудачных тестов в браузерах.
Можете ли вы помочь мне, посоветовав, как мне поступить?
Спасибо:)
2 ответа
Ты можешь использовать protractor-jasmine2-screenshot-reporter
Модуль для этого, он имеет некоторые хорошие функции, которые будут служить вашей цели.
var HtmlScreenshotReporter = require('protractor-jasmine2-screenshot-reporter');
var reporter = new HtmlScreenshotReporter({
dest: 'target/screenshots',
filename: 'my-report.html',
captureOnlyFailedSpecs: true
});
Это будет снимать скриншоты, когда ваши спецификации потерпели неудачу, у вас есть много вариантов, вы можете проверить эту ссылку: https://www.npmjs.com/package/protractor-jasmine2-screenshot-reporter
Пожалуйста, посмотрите на этот кусок кода. В этом коде мы правильно регистрируем функцию скриншота с помощью jasmine reporter. Это работает для меня.
onPrepare: function() {
jasmine.getEnv().addReporter({
specDone: function(result) {
browser.takeScreenshot().then(function(screenShot) {
// Saving File.
// Param filePath : where you want to store screenShot
// Param screenShot : Screen shot file which you want to store.
fs.writeFile(filePath, screenShot, 'base64', function (err) {
if (err) throw err;
console.log('File saved.');
});
});
}
});
}
Я надеюсь, что это помогает!:)
https://www.npmjs.com/package/protractor-beautiful-reporter может создавать хорошие отчеты в формате HTML, включая снимки экрана.
Установка:
npm install protractor-beautiful-reporter --save-dev
Конфигурация в protractor.conf.js
:
const HtmlReporter = require('protractor-beautiful-reporter');
exports.config = {
// your config here ...
onPrepare: function() {
jasmine.getEnv().addReporter(new HtmlReporter({
baseDirectory: 'target/screenshots',
takeScreenShotsOnlyForFailedSpecs: true
}).getJasmine2Reporter());
}
}
Если вы используете framework: 'custom'
в protractor.conf.js, то использование Jasmine или репортера Jasmine, похоже, не работает.
Вы можете сделать что-то вроде следующего в своем пост-тестовом хуке (например, cucumber.After):
protractor.browser.takeScreenshot().then(function(screenshot) {
const screenshots = path.join(process.cwd(), 'e2e/reports/screenshots');
fs.writeFile(screenshots + '/test.png', screenshot, 'base64', function (err) {
if (err) {
throw err;
}
console.log('File saved.');
});
});