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

时间:2015-10-21 11:51:35

标签: javascript node.js config nightwatch.js

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

一直在寻找明确的答案。

设定:

class_copyPropertyList



#!/usr/bin/env node require('nightwatch/bin/runner.js');




我有seen this method here by MateuszJeziorski 但省略了获取流程参数的方法。提供守夜人的examples也不回答这个问题。 我认为命令的最终结果看起来像这样:

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 };

2 个答案:

答案 0 :(得分:7)

听起来您可以在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"
            }
        }
    }

守夜人会让你通过--env环境。每个环境都可以有唯一的全局变量。

除非特别重写,否则将在每个环境中使用“默认”属性。

使用nightwatch --env "other_environment"之类的命令运行特定环境。环境将使用nightwatch.json中列出的全局变量启动。

答案 1 :(得分:1)

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