CucumberJs пропускает определение шага - возможно, обратный вызов последнего параметра в определении шага?

0

Я только начал работать с cucumberJs, gulp и транспортиром для углового приложения и заметил, к счастью, когда все мои шаги проходили, что, если вы не проходите и не используете этот параметр "обратного вызова" в определении шага, cucumberJs может НЕ знать, когда этот шаг завершен и пропустит другие шаги и пометит их как "пройденный",

Ниже приведен пример из документа cucumberJs: https://github.com/cucumber/cucumber-js

Пример 1:

this.Given(/^I am on the Cucumber.js GitHub repository$/, function (callback) {
    // Express the regexp above with the code you wish you had.
    // 'this' is set to a World instance.
    // i.e. you may use this.browser to execute the step:

    this.visit('https://github.com/cucumber/cucumber-js', callback);

    // 

Обратный вызов передается для посещения(), так что, когда задание завершено, следующий шаг может//выполняться Cucumber

});

Пример 2:

 this.When(/^I go to the README file$/, function (callback) {
    // Express the regexp above with the code you wish you had. 

Вызов callback() в конце//шага или обратный вызов (null, 'pending'), если этот шаг еще не реализован:

    callback(null, 'pending');
  });

Пример 3:

this.Then(/^I should see "(.*)" as the page title$/, function (title, callback) {
    // matching groups are passed as parameters to the step definition

    var pageTitle = this.browser.text('title');
    if (title === pageTitle) {
      callback();
    } else {
      callback(new Error("Expected to be on page with title " + title));
    }
  });

};

Я понимаю, у вас есть 2 варианта: a. Либо вы возвращаете обещание, либо не передаете обратный вызов ИЛИ b. Вы передаете параметр обратного вызова и вызываете его всякий раз, когда определение шага завершено, поэтому cucumberJs знает, чтобы вернуться и перейти к следующему шагу или следующему сценарию.

Тем не менее, я пробовал оба выше и все еще сталкивался с странной ситуацией, когда два верхних сценария будут работать НОРМАЛЬНО, как и следовало ожидать, но третий и четвертый сценарии в этом же файле функций будут пропущены и все пройдены.

Есть ли что-то особенное для рассмотрения особенностей с более чем двумя сценариями? Пока у меня есть <= 2 сценария для каждого файла функций, все работает отлично, но в тот момент, когда у меня был третий сценарий этого файла функции, этот третий сценарий игнорируется и пропускается.

Есть идеи?

Теги:
callback
protractor
e2e-testing
cucumberjs

1 ответ

0

Не видя ваших реальных шагов, я не могу сказать точно, но это звучит как асинхронная проблема или осмелюсь сказать, что это синтаксическая ошибка в сценарии. Вы пытались изменить порядок сценариев, чтобы увидеть, оказывает ли это влияние.

  • 0
    Привет findlayc, да, это странно, изменение порядка сценария работает без изменения фактического сценария - в сценарии нет синтаксической ошибки, потому что в противном случае тот же сценарий не сработал бы только при изменении порядка.
  • 0
    Звучит как асинхронная проблема

Ещё вопросы

Сообщество Overcoder
Наверх
Меню