将命令行参数传递给nightwatch.runner
问题描述:
我有一个测试设置,它接受预定义选项的动态值(例如: - foo =“bar”, - foo =“car”等)命令行。将命令行参数传递给nightwatch.runner
这工作:
./node_modules/nightwatch/bin/nightwatch ./tests/test.js --env "production" --foo="bar"
不过,我想从一个节点的应用程序内调用测试,但确实不能似乎得到传入我的测试额外的参数。我的测试正确初始化,但然后失败,因为我不能得到任何额外的参数。
try {
const nightwatch = require('nightwatch');
const argv = {
config: 'nightwatch.json',
test: 'test.js',
env: 'default',
foo: 'bar',
};
const done = function() {
console.log('nightwatch complete');
}; // your callback function
const settings = {};
nightwatch.runner(argv, done, settings);
} catch (error) {
console.log('Exception:' + error.message);
}
似乎是nightwatch.runner或nightwatch.cli绝对没有文档,以便您可以提供任何帮助,将不胜感激。
答
我花了很多闲逛,看看有什么被设置在那里的,但最后我试着玩的设置对象,并意识到,我可以覆盖全局PARAM像这样:
var settings = {
globals: {
foo: 'one',
bar: 'two'
}
};
这可能ISN” t设置对象的预期功能在这里,但它对我有用。
try {
const nightwatch = require('nightwatch');
const argv = {
config: 'nightwatch.json',
test: 'test.js',
env: 'default',
foo: 'bar',
};
const done = function() {
console.log('nightwatch complete');
}; // your callback function
var settings = {
globals: {
foo: 'one',
bar: 'two'
}
};
nightwatch.runner(argv, done, settings);
} catch (error) {
console.log('Exception:' + error.message);
}
如果任何人谁碰到这个自带有兴趣,我贴在github一个非常简单的版本。
尝试在'node_modules/nightwatch/bin/runner.js'中的'Nightwatch.runner(argv)'之前添加'console.log(argv)',并运行一些命令。调试输出表明'argv'中缺少一些字段。 –
感谢队友,这不太合适,但是让我走向正确的道路。 – user1411251