如何使用npm.commands.test函数

时间:2015-06-11 17:10:17

标签: javascript node.js testing npm

我想创建一个可以通过npm test返回结果的函数。

(通过调用此函数npm.commands.test(packages, callback) https://docs.npmjs.com/api/test

我试着像这样使用:

var npm = require("npm");
npm.load('', function(err, npm) {
  npm.commands.test('package.json', function(data) {
  });
});

它可以运行如命令npm test,但我不知道如何获得结果?什么是回调函数?

1 个答案:

答案 0 :(得分:1)

npm.commands.test执行当前项目的package.json文件中定义的测试命令。此外,npm.commands.test将第一个参数重定向到测试命令。

实施例

的package.json:
{
    ...
    "scripts": {
        "test": "mocha"
    }
    ...
}
码:
var npm = require('npm');
...
npm.commands.test('myTestDirectory', function(err){
    // if one of more tests failed, err will be set to the string:
    // 'Test failed.  See above for more details.'
    // Else, err will be undefined.
});
要求:
/path/to/project/root> mocha "myTestDirectory"

在某些情况下,特别是如果您想要执行另一个项目或包的测试,使用child_process模块生成npm test的新进程并访问输出可能更有意义过程' stderr和stdout直接或直接调用特定项目的测试运行器。