Where communities thrive

  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
Repo info
  • 03:07
    ronmaple starred cucumber/cucumber-js
  • 02:25
    en0c-026 starred cucumber/cucumber-js
  • Jan 17 19:39
    larryg01 edited #1898
  • Jan 17 19:38
    larryg01 opened #1898
  • Jan 17 19:26
    michaelm-rsi commented #1896
  • Jan 17 19:26
    michaelm-rsi commented #1896
  • Jan 17 19:21
    coveralls commented #1897
  • Jan 17 19:19
    michaelm-rsi opened #1897
  • Jan 17 18:58
    michaelm-rsi commented #1896
  • Jan 17 18:57
    michaelm-rsi opened #1896
  • Jan 17 13:06

    davidjgoss on main

    chore: switch from colors to ch… (compare)

  • Jan 17 13:06

    davidjgoss on colors-to-chalk


  • Jan 17 13:06
    davidjgoss closed #1895
  • Jan 17 13:06
    davidjgoss closed #1888
  • Jan 17 12:52
    MubasharJaved25 starred cucumber/cucumber-js
  • Jan 17 12:25
    davidjgoss commented #1895
  • Jan 17 08:22
    aurelien-reeves commented #1895
  • Jan 15 16:44
    nicojs commented #1894
  • Jan 15 14:22
    davidjgoss assigned #1894
  • Jan 15 14:21
    davidjgoss labeled #1895
Abhinaba Ghosh
Hi, currently protractor supports parallel feature files execution, not scenario. If you want to try that out, you can checkout this starter kit : https://github.com/abhinaba-ghosh/protractor-cucumber-serenity-typescript-starter

Hello everyone, I hope this is the right place to ask this question. I'm running @wdio/cucumber-framework, but maybe those of you familiar with cucumber-js will be able to see the problem. I've defined and set a custom World constructor, and it is being re-constructed with each scenario as expected, as I can see by a console.log("Constructing world") inside the custom constructor function. However: Each scenario is able to somehow modify the subsequently constructed object rather than having it re-constructed with defaults as specified, and the modifications don't get overwritten for the new scenario. world.js looks like this:

const options = {loginBusinessOptions: {
    login: "abc",
    password: "xyz"

function CustomWorld() {
    console.log("Constructing world");
    console.log("options.loginBusinessOptions is " + JSON.stringify(options.loginBusinessOptions));
    this.nav = {};
    // this.context=options;

export default CustomWorld

Observe output of running a scenario twice, where the first scenario sets "this.context.loginBusinessOptions.login='new login' instead of its original value 'abc' as set in the 'options' object above, showing that the 'options' object has been overwritten by the 1st scenario's setting of this.context.loginBusinessOptions.login.

This happens whether the custom constructor simply sets 'this.context=options' or does an Object.assign to prevent the two objects being treated as the same object.

[0-0] Constructing world
[0-0] options.loginBusinessOptions is {"login":"abc","password":"xyz"}
[0-0] ***this.context.loginBusinessOptions is {"login":"abc","password":"xyz"}
Constructing world
options.loginBusinessOptions is {"login":"new login","password":"xyz"}
***this.context.loginBusinessOptions is {"login":"new login","password":"xyz"}

There is a reproducible example of this here: https://github.com/osmolyar/wdio_cucumber_world_not_reinitialized . or - if this does not happen with cucumber-js, it can be narrowed down to a @wdio/cucumber-framework issue. Thanks in advance for any guidance.

How can I use data transformation for "docstring"?
I make this:
but this only works for usual parameters, not for docstring
Kirill Eremin
Hello! Help me please. Maybe you have so problem?
After launching tests we have blank chrome window and error: this is not defined for functions inside Given, Then, etc...
It's strange because all my teammates don't have so problem.
The version of nodejs is 12.13.0 and OS is MacOS Catalina
Hi ,
Does cucumber with typescript support @and decorator?
chromedriver 83 has been released so if we are not able to get it through package.json then delete entry of chromedriver from package.json and do force download through following command npm install chromedriver --chromedriver-force-download
@StaroKep Hi, Can it be reproduced on other OS? For example, Windows
Kirill Eremin
@Dmytro89_gitlab It's strange, but after xcode updating, all works fine
Hello! What is the best solution(framework) for API testing with Cucumber-js? Thanks!
Abdul Aziz
@a22183nj , @ThomasGHenry , is your setWorldConstructor() being called from a step definition file?
Abdul Aziz
Can someone help me please, I am new to automation. I have set up framework using selenium web driver , BDD cucumber using node JS. I have a feature file with 2 scenarios. It successfully runs the first one but with the second one or just opens up a browser. I have a steps page and object page. What do I need to do on order for both scenarios to run please. Thanks
how do you run the feature file?
is there any error you get?

Hello! What is the best solution(framework) for API testing with Cucumber-js? Thanks!

We are using SuperTest and cucumber.

@skirep Thank you!
Abdul Aziz
@ricardgarcia I don't get no error . I just run command npm test. It runs the first scenario but does not run second scenario
try running npm test --specs <name of your feature file> @abdulazizkarim11
Question from the wdio-cucumber-framework viewpoint - does cucumber.js expose 'world' in before/afterScenario hooks?
@StaroKep , are your step definitions defined as arrow functions? In that case they won't have access to a 'this'
Morning, how or what is the approach in cucumber js to close and restore the browser after each scenario in a feature? Similar to what mocha (webdriverio) does between each test? Or it is a different understanding to appreciate? I can quit() and closeSession() in a hook no problem but bringing back the browser(s) to start next session isn't so clear how to best achieve this. Any guidance please? I'm using WDIO v6
found it, simple browser.reloadSession() in the global hooks, does the trick nicely! :)
Anyone explain how to pass a reference in.. something like this (doesn't work in cucumber syntax)
Given I want "browserA" to refresh
Given(/^I want "([^"]*)" to refresh$/), (browserN) => { browserN.refresh() })
I've clearly misunderstood how to pass this in correctly, I achieve a similar approach with Mocha WDIO, where we have multiremote in use, and send commands across different running browsers (users). How do I do something similar in cucumberJS? thanks in advance
How to deliberately fail the cucumber step because the functionality failed
found it using eval() on browser, to get the obj not the string :( doh
Daniel Montesinos
Hello! does somebody know if is it possible to define our own custom table types, like java version does: https://github.com/cucumber/cucumber/tree/master/datatable#custom-table-types
??? thanks!!
Kirill Eremin


@StaroKep , are your step definitions defined as arrow functions? In that case they won't have access to a 'this'

We don't use arrow functions. We use function(){...}.
We updated Xcode and all started work fine. It's strange, but it helped us to solve the problem.

Hi guys!. I have a question. I am new at "Cucumber-js" For execute your tests in node js. what command line do you use?. How to configure my proyecto for only execute "cucumber-js src/features/login.feature" ?. I'm using only cucumber and gRPC for API test.
Rahul Sharma
Hi All, Is there a way to update cucumber.json report after or during execution? I want to add some meaningful text along with the error message for failed steps.
Priyanka Kondajji
This was all good. I had removed arrow functions and was working fine. But from yesterday, I get this TypeError: this.attach is not a function. and also while comitting the code, i get as "Unexpected unnamed async function (func-names)"
When('Post a transition , async function() { this.attach(Transition with payload: ${JSON.stringify(payload, undefined, 4)});
Joe Gornick
Hey folks, using wdio w/ cucmberjs and was wonderig if there was a way to inject values into the datatable at runtime so that when we get to beforeScenario, the scenario is compiled with the new datatable values?
I keep getting these types of errors when a timeout is reached function timed out, ensure the promise resolves within 120000 milliseconds when running tests via saucelabs. I'd like to see what element it failed on so I don't have to go into saucelabs see the error there. Is there anyway to have a more useful timeout message?
Hi All,
When I'm integrating cypress with cucumber I'm ending with the following error
1 reply
can anybody help me on this?
folder structure is as follows,
Hello everyone, is there any way to run the cucumber feature files multiple times in afterFeature hook in Webdriver IO?
Josemy Duarte
Hi pps! Quick question.. Does anyone know how to make work cucumber.js with path aliases? I'm having this problem:

Hello everyone, I am using jest cucumber on top of jest puppeteer & into jest.setup file under afterEach I am capturing the screen shot .. but unable to linked them to cucumber report ? (Cucumber.json file is created but unable linked failed screenshot)

jest-cucumber version 2.0.12

Daniel Montesinos
Hello! is there any tool to document all the step-definitions we have defined within a project?
I'm trying to make an npmjs package for cucumber so that a developer can just write cucumber files. Is there an example of that that someone can point me to? Or documentation on how to do it?
Hmm, the messages in here seem to be from long ago without answers. Is there a more active place to ask there questions?