如何捆绑测试并从观察任务中启动业力

时间:2015-09-27 15:41:29

标签: node.js gulp gulp-karma

每当相应的文件发生变化时,我想捆绑我的测试并开始业力,显示任何失败的测试。

我目前有监视任务:

gulp.task('default', ['browserify', 'css','runTests'], function () {
    gulp.watch('./src/js/**/*.js', ['browserify']);
    gulp.watch('./src/js/**/*.js', ['runTests']);
});

启动runTests.js

var testFile = [
'./src/components/tests/suite.js'
];

// bundle tests
var cmd = child.spawn('browserify', ['-e', './src/components/tests/suite.js', '-t', 'reactify', '-t']);

cmd.on('close', function (code) {
    //cmd finished start karma
    gulp.src(testFiles)
        .pipe(karma({
            configFile: 'karma.conf.js',
            action: 'run'
        }))
        .on('error', function(err) {
            throw err;
        });
    });

我的控制台目前出现错误:

[17:04:27] Starting 'runTests'...
[17:04:27] Finished 'runTests' after 2.73 ms
events.js:85
  throw er; // Unhandled 'error' event
        ^
Error: spawn browserify ENOENT
at exports._errnoException (util.js:746:11)
at Process.ChildProcess._handle.onexit (child_process.js:1053:32)
at child_process.js:1144:20
at process._tickCallback (node.js:355:11)
at Function.Module.runMain (module.js:503:11)
at startup (node.js:129:16)
at node.js:814:3

Process finished with exit code 1

我可以获得一个基本命令来工作child = spawn("ls");

但不是browserify命令,任何人都可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

您可以在gulp任务中使用browserify API。有关使用browserify进行通配的一些提示,请查看substack/node-browserify#1170。然后你可以在karam配置文件数组中包含输出文件。

// Disclaimer: This code is untested
var files = require("glob").sync('./src/js/**/*.js');
files.push('./src/components/tests/suite.js');

var browserify = require("browserify")(files, {transform: 'reactify'});
// your can do more config on the browserify instance

// Run browserify bundle and output to a file
var myFile = require('fs').createWriteStream('myOutput.txt');
browserify.bundle().pipe(myFile);