Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 正确配置Gulp、Mocha、Browserify,以执行客户端测试和服务器端测试_Node.js_Testing_Mocha.js_Browserify_Gulp - Fatal编程技术网

Node.js 正确配置Gulp、Mocha、Browserify,以执行客户端测试和服务器端测试

Node.js 正确配置Gulp、Mocha、Browserify,以执行客户端测试和服务器端测试,node.js,testing,mocha.js,browserify,gulp,Node.js,Testing,Mocha.js,Browserify,Gulp,我正在开发一个节点应用程序,为我们的构建过程使用gulp,为我们的测试运行程序使用gulpmocha插件 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

我正在开发一个节点应用程序,为我们的构建过程使用
gulp
,为我们的测试运行程序使用
gulpmocha
插件

 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
只是我的服务器端测试。我也想用同样的过程来执行我的客户机测试。我看了一下
大口大口大口地喝了一杯摩卡咖啡
,试了一下,但还是遇到了同样的问题。当尝试测试我的主干代码时,它失败了,因为测试运行程序找不到其他必需的客户端组件(即
jquery
),它失败了。我知道我需要使用一些无头webkit,比如
phantomJS
。但我很难弄清楚如何将其融入到
browserify
的吞咽过程中

有人尝试过这样的设置,或者有人知道我在让我的“测试”任务执行客户端mocha测试和服务器端mocha测试方面缺少什么吗?

潜在的设置是:

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

  • 因为它需要解析requires,所以它必须在所有“入口点”文件上运行。通常,您的测试应该需要源代码,并且必须是入口点
  • 使用-它解决了karma browserify(ATM-this-它不能与bfy 5.0 api一起工作)和karma browserify中的问题
  • 由于源/供应商源/测试都是捆绑的,所以覆盖范围变得很棘手。所以我创造了一个
  • browserify应该是业力中的“预处理器”
  • 应在browserfy选项中配置一组“transform:[]”
  • 可以通过获取现有转换模块并使用自定义模块包装来配置转换,就像我在上面为browserify伊斯坦布尔所做的那样

您是否考虑过使用karma(以前称为Testular)进行客户端测试?它还附带了一个插件,
gulp karma
。@scarlz-请详细说明在这种情况下,karma将以何种方式提供帮助。具体来说,它将如何帮助测试大量使用第三方全局语言(如jQuery或lodash)的组件。