Comments (5)
Hi @leggebroten, thank you for contributing!
A config file is a good idea, can you give me an example/snippet of the settings you'd like to see? Internally, the browser setup looks like this
from selenium-cucumber-js.
Hi John,
My initial plan would be to look for a well-known JSON config file in the node working directory and merge that with a "config" object at the top of your index.js file.
Then, use the values from that merged object as defaults for the options statements when constructing the program instance.
This could easily be extended to define arbitrary driver construction functors or pass additional to cucumber command line
let config = {
"dir": {
"step_def": "./step-definitions",
"page_obj": "./page-objects",
"shared_obj": "./shared-objects",
"reports": "./reports",
},
"browser": {
"allowed": "^(chrome|firefox|phantomjs)$",
"default": "chrome"
},
"timeout": 10000
};
let configFileName = path.resolve(process.cwd(), 'selenium-cucumber-js.json');
var fs = require('fs');
if (fs.existsSync(configFileName)) {
console.log("Reading config from " + configFileName);
Object.assign(config, require(configFileName));
console.log('Config is: ' + JSON.stringify(config));
}
// end Added
program
.version(pjson.version)
.description(pjson.description)
.option('-s, --steps ', 'path to step definitions. defaults to ' + config.dir.step_def, config.dir.step_def)
from selenium-cucumber-js.
I have a better solution and will submit a pull request for your review.
from selenium-cucumber-js.
Tried to add the two branches for pull requests ... no joy.
from selenium-cucumber-js.
Merged, thanks @leggebroten
from selenium-cucumber-js.
Related Issues (20)
- [Documentation bug] demo project doesn't work out of the box HOT 1
- The version of chromedriver installed by default together with selenium-cucumber-js is too old and unsupported by modern browsers HOT 2
- How to change the heading of the report? HOT 1
- NoSuchSessionError with custom Firefox driver
- Move CI from Shippable to Github Actions
- Throwing exception
- phantomdriver-rebuild version 2.1.12 giving high security risk, so update to 2.1.16
- a high severity vulnerability introduced in selenium-cucumber-js HOT 2
- Issues with npm install and running tests on a mac HOT 2
- Allow directories in pageObjects
- Running tests on chrome fails at WebDriver.manage().window().maximize()
- Selenium cucumber does not run on Mac HOT 5
- Is it necessary for electron-prebuilt to be a hard dependency? HOT 1
- Running on different browsers/devices over Browserstack HOT 1
- How to get command line arg before executing tests? HOT 1
- session not created: Chrome version must be between 71 and 75 HOT 4
- Can we upgrade the cucumber version? Facing issue when trying to upgrade to newer version. Help will be appreciated. HOT 1
- Add configuration for where `features` folder can be placed
- How do I make my tests run with chrome 78? HOT 3
- How can I read localStorage in test? HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from selenium-cucumber-js.