我有一个测试设置,接受预定义选项的动态值(例如: - foo =“bar”, - foo =“car”等),从命令行运行时效果很好。
这有效:
./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的文档,所以您可以提供的任何帮助都将非常感谢。
答案 0 :(得分:1)
需要花很多时间才能看到设置在哪里,但最后我尝试使用设置对象并意识到我可以像这样覆盖全局参数:
var settings = {
globals: {
foo: 'one',
bar: 'two'
}
};
这可能不是设置对象的预期功能,但它对我有用。
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上发布一个非常简单的版本。