使用Gulp,Mocha,Browserify进行正确configuration,以执行服务器端testing的客户端testing

我正在开发一个节点应用程序,利用我们的构build过程中的gulp-mocha以及我们testing运行者的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只是我的服务器端testing。 我想要使​​用相同的过程来执行我的客户端testing。 我看了一下, gulp-blanket-mocha并给了它一枪,但我一直遇到同样的问题。 当试图testing我的主干代码时,它失败了,因为testing运行器找不到其他客户端组件(即jquery ),并且失败。 我得知我需要使用像phantomJS这样的无phantomJS webkit。 但是我真的很难搞清楚如何将这一点与browserify结合到一起。

任何人试图得到像这样的设置,或者有什么想法,我在这里失去了我的吞咽“testing”任务执行我的客户端摩卡testing以及我的服务器端?

潜在的设置是:

  • testing跑步者 – 这是吞咽和业力之间的胶水,并提供选项来设置与gulp.src()streamkarma options.files 。 坦率地说,如果你在业力testing之前没有任何步骤,那么直接在吞噬任务中使用业力,而不使用吞噬插件。
  • 使用相关的karma插件,在幻像/ chrome / firefox上运行
  • 使用关联的业务插件覆盖,alt-js编译
  • 更多插件和configuration报告testing和覆盖的业力选项。

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

  • 由于需要parsing,所以必须在所有“入口点”文件上运行。 通常你的testing应该要求来源,并且必须是入口点。
  • 使用业力兄弟 – 它解决业力问题 – browserify(ATM这甚至没有工作 – 它不能与bfy 5.0 api工作)&karma-browserifast。
  • 由于来源/供应商来源/testing都捆绑在一起,覆盖面变得棘手。 所以我创build了一个自定义的覆盖转换,它标记了哪些代码是捆绑的
  • browserify应该是业力中的“预处理器”。
  • 应该在browserfy选项中configuration一堆“transform:[]”
  • 转换可以通过采用现有的转换模块进行configuration,并使用自定义模块进行包装,就像我上面为browserify-istanbul所做的那样