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.但是我很难找到如何将这种方法融入到浏览器化的这个gulp过程中.
有人尝试过这样的设置,或者在我的gulp“测试”任务执行我的客户端mocha测试以及我的服务器端方面有任何想法,我在这里缺少什么?
潜在的设置是:> Test runner – 这是gulp和karma之间的粘合剂,并提供了使用gulp.src()流设置karma options.files的选项.坦率地说,如果你在业力测试之前没有任何步骤,那么在gulp任务中直接使用业力,而不使用gulp插件.
>使用相关的业力插件,在幻像/ chrome / firefox上运行
>使用相关的业力插件进行覆盖,alt-js编译
>更多插件&配置karma选项以报告测试和覆盖范围.
使用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选项中配置一堆“transform:[]”>可以通过采用现有的转换模块并使用自定义模块进行包装来配置转换,就像我上面为browserify-istanbul所做的那样