javascript - 如何设置 cucumber 环境变量

标签 javascript node.js phantomjs cucumber

我有以下 package.json:

{
  "name": "newcucumber",
  "version": "1.0.0",
  "main": "index.js",
  "scripts": {
    "test": "./node_modules/.bin/cucumber-js",
    "firefox": "./node_modules/.bin/cucumber-js -- --profile.desktop.env.browser ff"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "chromedriver": "^2.24.1",
    "cucumber": "^1.3.0",
    "firefox-profile": "^0.4.2",
    "geckodriver": "^1.1.2",
    "phantomjs-prebuilt": "^2.1.12",
    "selenium-webdriver": "^3.0.0-beta-2"
  }
}

我使用以下方式运行程序:

npm test

我想为 Cucumber 设置一个环境变量,以便可以从命令行运行:npm test firefoxnpm test phantomjs

它也可以作为 package.json“脚本”的一部分,如上所示,但我不确定我是否做对了。调用 npm run-script firefox

如何实现它,以便在 js 代码(如 world.js 或 browser.js)中获取 env 变量?

最佳答案

现在我再次得到了我想要使用的答案:

这就是 package.json 的一部分(注意!!!引号的语法)的样子:

"scripts": {
    "test": "cucumber-js",
    "firefox": "cucumber-js --world-parameters '{\"browser\":\"firefox\"}'",
    "chrome": "cucumber-js --world-parameters '{\"browser\":\"chrome\"}'",
    "safari": "cucumber-js --world-parameters '{\"browser\":\"safari\"}'",
    "phantomjs": "cucumber-js --world-parameters '{\"browser\":\"phantomjs\"}'"
  }

JSON 对象被传递到 World。在 World.js 中,代码如下所示:

module.exports = function() {
  this.World = function(input) {
    console.log(input.browser); // Do whatever you want with the JSON (input) object
  };
};

关于javascript - 如何设置 cucumber 环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39751333/

相关文章:

javascript - jQuery,切换菜单项

javascript - 条件语句中的Node.js调度函数

node.js - 将 Next.js 部署到 Apache 服务器

node.js - NodeJS、RSA,这安全吗?

Python Selenium WebDriver 在新版本(2.4.9)中无法执行 quit()

javascript - Vuejs + Vuetifyjs + v-text-field 文本转换大写

javascript - Ionic 2 - 如何禁用滚动

macos - 任何命令的 NPM 错误

javascript - 从不同的函数访问变量而不创建全局变量

javascript - 在 Casper JS(基于 Phantom JS)中,如何捕获 DOM 完成后加载的 JavaScript 错误?