2015-01-07 92 views
2

我有一个正在处理的节点模块,并且我想为它编写单元测试,但是我对如何将参数(CLI所需的参数)通过测试套件传递给节点感到困惑。节点CLI单元测试

让我们假设(为简便起见)模块名称为J,所以我会这样称呼它......

$ j --file test.js --file test2.js 

我如何重新创建这些当我写我的测试套件--file电话?

回答

1

您可以使用节点的child process模块来运行其他命令行进程。 This link可以给你更多的语法信息;我还建议检查儿童进程的promised version

var spawn = require('child-process').spawn; 

spawn('j', ['--file', 'test.js', '--file', 'test2.js']) 
    .progress(function(childProcess){ 
    // any logic you want to do here while process is running 
    }) 
    .then(function(result){ 
    // command was executed 
    // write tests here 
    }) 
    .fail(function(err){ 
    // maybe 1 last test to make sure there was no test 
    }); 

至于单元测试套件,我期待你的任何舒适的工作会(摩卡/柴等)