У меня есть (на самом деле много) тестов Protractor в TypeScript , и мне нужно сделать снимок экрана в случае сбоев - из expect
или по таймауту - и я хочу использовать изображение намой Allure Report .
Я изначально пробовал решение, представленное в Ответы Protractor , создавая собственный отчет или снимая скриншот внутри jasmine. getEnv().afterAll
, но это не сработало- изображение прикреплено к неправильной спецификации.
Поэтому я попытался переопределить jasmine.Spec.prototype.addExpectationResult
, но у меня появляется ошибка: «Свойство« Spec »не существует для типа« typeof jasmine »'.ts (2339) ".
Я использовал обходной путь, чтобы сделать эту работу (и она действительно работала), как вы можете видеть ниже:
const jasmine2 = jasmine as any; // <--- HERE !!!
const addExpectationResult = jasmine2.Spec.prototype.addExpectationResult;
jasmine2.Spec.prototype.addExpectationResult = function() {
if (!arguments[0]) {
// Takes screenshot
allure.createAttachment('screenshot', Buffer.from(base64, 'base64'), 'image/png');
}
return addExpectationResult.apply(this, arguments);
};
НО есть лиспособ переопределения addExpectationResult
«лучшим» способом в TypeScript ?
В моем файле package.json
есть следующее @types
:
"devDependencies": {
"@types/jasmine": "^3.4.4",
"@types/jasminewd2": "^2.0.8"
}
Заранее спасибо.