Nightwatch.js 通过配置文件设置测试环境

Nightwatch.js set testing environment via config file

新手节点警告:如何以编程方式设置在 运行 测试时使用的配置对象?

一直在努力寻找明确的答案。

设置:

/e2e-tests
    |-globals.js
    |-product.page.notify.stock.js
|-nightwatch.json 
|-nightwatch 

var SITE_URL = 'http://dev.local/', //this needs to be set somehow production||dev
  AJAX_URL = 'ajaxproc/getrandomoutofstock', //relative so this doesn't need to change
  select = '#mysize',
  emailError = '.error-message',
  outOfStockItem = {
    id: false,
    url: false
  };

module.exports = {
  'Get backorder stock url': function(browser) {
    browser.url(SITEURL + AJAX_URL)
      // ommitted for brevity
  },
  'Check notify stock on product page': function(client) {

    client.url(SITE_URL + outOfStockItem.url);
    // ommitted for brevity
  },

  // remaining test stuff - not needed
};

seen this method here by MateuszJeziorski but omits the means to get the process arguments. The examples提供了守夜人也不要回答这个问题。 我认为命令的最终结果看起来像这样:

nightwatch -somekindofparametertosetenvironment -t e2e-tests/product.page.notify.stock

听起来您可以在 nightwatch.json 文件中获得多个环境所需的内容。

您可以在 nightwatch.json:

中设置您的测试环境
"test_settings" : {
        "default" : {
            "launch_url" : "some_url",
            "selenium_port"  : 4444,
            "selenium_host"  : "localhost",
            "silent": true,
            "screenshots" : {
            "globals" : {
                "site_url" : "some_site"
            },      
            "desiredCapabilities": {
               "browserName": "chrome",
               "javascriptEnabled": true,
               "acceptSslCerts": true
           }
        },
        "other_environment" : {
            "globals" : {
                "site_url" : "some_other_site"
            }
        },
        "one_more_environment" : {
            "globals" : {
                "site_url" : "one_other_site",
                "other_var" : "this env needs a different variable"
            }
        }
    }

Nightwatch 会让你通过 --env 进入一个环境。每个环境都可以有唯一的全局变量。

'default' 属性在每个环境中使用,除非它们被特别覆盖。

运行 一个特定的环境,带有像 nightwatch --env "other_environment" 这样的命令。环境将使用 nightwatch.json.

中列出的全局变量启动

除了@curtwphillips 解释的内容,您还可以使用nightwatch --config <config.file> 指定替代配置文件。