0

I just started working with cucumberJs, gulp and protractor for an angular app and noticed, luckily as all my steps were passing, that if you don't pass in and use that 'callback' parameter in the step definition, cucumberJs might NOT know when this step is completed and will skip other steps and mark them all as 'passed'

Below is an example from the cucumberJs doc: https://github.com/cucumber/cucumber-js

Example 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);

    // 

The callback is passed to visit() so that when the job's finished, the next step can // be executed by Cucumber

. });

Example 2:

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

Call callback() at the end // of the step, or callback(null, 'pending') if the step is not yet implemented:

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

Example 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));
    }
  });

};

I understand you have 2 choices here: a. Either you return a promise and don't pass the call back OR b. You pass in the callback parameter and call it whenever the step definition is complete so cucumberJs knows to return and go to next step or next scenario.

However, I tried both above and still running into a weird situation where the top two scenarios will work NORMALLY as you would expect, but the third and fourth scenario within that same feature file will be skipped and all passed.

Is there anything special to consider about features with more than 2 scenarios? As long as I have <= 2 scenarios per feature files, everything works fine, but the moment I had a third scenario to that feature file, that third scenario is ignored and skipped.

Any ideas?

pelican
  • 5,846
  • 9
  • 43
  • 67

1 Answers1

0

Without seeing your actual steps I can't say for sure but it sounds like an asynchronous issue or dare I say it, a syntax error in the scenario. Have you tried changing the order of the scenarios to see if that has an impact.

findlayc
  • 136
  • 5
  • Hi findlayc, yes, that's the weird thing, changing the order of the scenario works, without changing the actual scenario - there's no syntax error in the scenario because otherwise same scenario wouldn't work just by rearranging order. – pelican May 23 '16 at 13:47
  • Sounds like an asynchronous issue – findlayc May 23 '16 at 15:49