Как может пакет npm повлиять на этап выполнения Protractor beforeLaunch? - PullRequest
0 голосов
/ 18 января 2019

Просматривая код в пакете npm protractor-jasmine2-screenshot-reporter, я заметил, что он содержит функцию beforeLaunch, которая экспортируется вместе с остальными функциями.

Я знаю, что этапы жизненного циклазапустите в следующем порядке, поэтому мой вопрос: как этот репортер может повлиять на этап выполнения beforeLaunch, если сам объект jasmine недоступен до этапа onPrepare?

--- beforeLaunch           
    --- onPrepare          (set in conf) ***reporters initialized here
      --- jasmineStarted   (set in reporter)
        --- beforeAll
         --- suiteStarted  (set in reporter)
          --- specStarted  (set in reporter)
           --- beforeEach  (set in testFile)
           +++ afterEach   (set in testFile)
          +++ specDone     (set in reporter)
         +++ suiteDone     (set in reporter)
        +++ afterAll
      +++ jasmineDone      (set in reporter)
    +++ onComplete         (set in conf)
+++ afterLaunch

Кодfrom protractor-jasmine2-screenshot-reporter

function Jasmine2ScreenShotReporter(opts) {

  this.beforeLaunch = function (callback) {
  };

  this.afterLaunch = function (callback) {
  };

  this.jasmineStarted = function (suiteInfo) {
  };

  this.suiteStarted = function (suite) {
  };

  this.suiteDone = function (suite) {
  };

  this.specStarted = function (spec) {
  };

  this.specDone = function (spec) {
  };

  this.jasmineDone = function () {
  };

  return this;
}

Возможно, я неправильно понял здесь какое-то поведение, но надеюсь, что кто-то может пролить свет на это для меня.

1 Ответ

0 голосов
/ 20 января 2019

Транспортир использует дополнительные подключаемые крючки и разрешает их в дополнение к крючкам Жасмин. Они обычно решаются в Protractor's Runner. Вы можете прочитать о плагинах здесь: https://github.com/angular/protractor/blob/master/lib/plugins.ts#L25

Так, например, плагин onPrepare проверяется в конфигурации (https://github.com/angular/protractor/blob/selenium4/lib/runner.ts#L63) и выполняется бегуном (https://github.com/angular/protractor/blob/selenium4/lib/runner.ts#L82).) Эти два файла, ссылающиеся на бегуна, предназначены для ветви обновления Селена 4. Это эти версии легче смотреть, поскольку в них нет цепочки обещаемых обещаний.

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