codeceptjs / CodeceptJS

Supercharged End 2 End Testing Framework for NodeJS
http://codecept.io
MIT License
4.11k stars 724 forks source link

Gherkin steps not getting generated when using import statement in the code #1914

Open samaysimantbarik opened 5 years ago

samaysimantbarik commented 5 years ago

What are you trying to achieve?

Generate the gherkin code from bdd

What do you get instead?

Error :"Unexpected Indentifier"

Provide console output if related. Use --verbose mode for more details.

Error: Could not include object Step Definition from ./step_definitions/givensteps.js from module 'C:\Projects\UNSW TESTS\e2e\unswcodecept\e2e\step_definitions\givensteps.js' Could not include object loginPage from module 'C:\Projects\UNSW TESTS\e2e\unswcodecept\e2e\pages\login.js' Unexpected identifier at loadSupportObject (C:\Projects\UNSW TESTS\e2e\unswcodecept\node_modules\codeceptjs\lib\container.js:309:11) at loadGherkinSteps (C:\Projects\UNSW TESTS\e2e\unswcodecept\node_modules\codeceptjs\lib\container.js:282:5) at Function.create (C:\Projects\UNSW TESTS\e2e\unswcodecept\node_modules\codeceptjs\lib\container.js:37:25)

# paste output here

Provide test source code if related const { I } = inject();

const username = {id:'username'}; const password = {id:'password'}; const submitbtn = {id:'login'};

import config from 'config';

module.exports= { loginAsFaculty() { console.log("Inside login") I.amOnPage(config.get("baseUrl")) I.fillField(username, config.get("slpEditUser.username")); I.fillField(password, config.get("slpEditUser.password")); I.click(submitbtn); }

// paste test

Details

If I convert the import into require(common.js), then the error is gone.

Please plan to support ES6.

ghost commented 4 years ago

Also, not available to use 'import' within gerkin stepdefinitions, getting: " Could not include object Step Definition from ./src/test-layer/step_definitions/common_steps.js from module '\src\test-layer\step_definitions\ commonsteps.js' Unexpected token import " In accordance with docs (https://codecept.io/basics) for now, it's already expected to support: 'Tests are expected to be written in ECMAScript 7.'