使用Gulp,Mocha,Browserify进行正确配置,以便通过服务器端测试执行客户端测试

时间:2014-03-06 19:56:17

标签: node.js testing mocha browserify gulp

我正在使用gulp作为构建过程的节点应用程序和我们的测试运行器的gulp-mocha插件。

 gulp.task('test', function () {
    return gulp.src(TESTJS)
        .pipe(mocha({reporter: 'spec'}))
        .on("error", function (err) {
            // handle the mocha errors so that they don't cloud the test results,
            // or end the watch
            console.log(err.toString());
            this.emit('end');
        });
 });

目前TESTJS仅是我的服务器端测试。我也想使用同样的过程来执行我的客户端测试。我调查gulp-blanket-mocha然后试了一下,但我仍然遇到同样的问题。在尝试测试我的骨干代码时,它会失败,因为测试运行器找不到其他必需的客户端组件(即jquery)并且它失败了。我知道我需要使用像phantomJS这样的无头webkit。但是我正在努力找出如何将其与browserify结合到这个gulp过程中。

任何人都尝试过这样的设置,或者在我的gulp“测试”任务执行我的客户端mocha测试以及我的服务器端方面有任何想法,我在这里缺少什么?

1 个答案:

答案 0 :(得分:1)

潜在的设置是:

  • Test runner - 这是gulp和karma之间的粘合剂,并提供了使用gulp.src()流设置业力options.files的选项。坦率地说,如果你在业力测试之前没有任何步骤,那么在gulp任务中直接使用业力,而不使用gulp插件。
  • 使用相关的业力插件,在幻像/ chrome / firefox上运行
  • 使用相关的业力插件进行覆盖,alt-js编译
  • 更多插件&为报告测试和覆盖范围配置业力选项。

使用browserify将改变上面的整个设置。

  • 由于需要解决需求,因此必须在所有"入口点"文件。通常,您的测试应该需要来源,并且必须是入口点。
  • 使用karma-bro - 它解决了karma-browserify中的问题(ATM doesnt even work - 它无法使用bfy 5.0 api)&果报browserifast。
  • 覆盖范围变得棘手,因为源/供应商源/测试都捆绑在一起。所以我创建了一个custom coverage transform, that marks which code whould be instrumented while bfy is bundling
  • browserify应该是"预处理器"在业力。
  • 一堆"变换:[]"应该在browserfy选项中配置
  • 可以通过采用现有的转换模块并使用自定义模块进行换行来配置转换,就像我上面为browserify-istanbul所做的那样