Как переопределить jasmine.Spec.prototype.addExpectationResult для транспортира в TypeScript? - PullRequest
1 голос
/ 14 октября 2019

У меня есть (на самом деле много) тестов 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"
}

Заранее спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...