我想创建一个可以通过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
,但我不知道如何获得结果?什么是回调函数?
答案 0 :(得分:1)
npm.commands.test
执行当前项目的package.json文件中定义的测试命令。此外,npm.commands.test
将第一个参数重定向到测试命令。
{
...
"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直接或直接调用特定项目的测试运行器。