Noob节点警告:如何以编程方式设置运行测试时要使用的配置对象?
一直在寻找明确的答案。
设定:
class_copyPropertyList
/e2e-tests
|-globals.js
|-product.page.notify.stock.js
|-nightwatch.json
|-nightwatch
#!/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
};
答案 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>
指定备用配置文件。