2017-05-06 188 views
0

我有一个测试设置,它接受预定义选项的动态值(例如: - 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绝对没有文档,以便您可以提供任何帮助,将不胜感激。

+0

尝试在'node_modules/nightwatch/bin/runner.js'中的'Nightwatch.runner(argv)'之前添加'console.log(argv)',并运行一些命令。调试输出表明'argv'中缺少一些字段。 –

+0

感谢队友,这不太合适,但是让我走向正确的道路。 – user1411251

回答

0

我花了很多闲逛,看看有什么被设置在那里的,但最后我试着玩的设置对象,并意识到,我可以覆盖全局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一个非常简单的版本。