首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Gulp Node.js伊斯坦布尔伊斯帕达

Gulp Node.js伊斯坦布尔伊斯帕达
EN

Stack Overflow用户
提问于 2015-12-31 15:35:04
回答 4查看 1.1K关注 0票数 2

我正在尝试获得伊斯坦布尔和Isparta的单元测试覆盖率,但我遇到了一些麻烦。

实际上,这是我的吞咽文件任务:

代码语言:javascript
复制
gulp.task('pre-test', ['default'], function() {
  return gulp.src('src/app/**/*.js')
    .pipe(plumber())
    .pipe(istanbul({
      instrumenter: isparta.Instrumenter,
      includeUntested: true
    }))
    .pipe(istanbul.hookRequire());
});

gulp.task('test', ['pre-test'], function() {
  return gulp.src('src/test/**/*.js')
    .pipe(mocha({reporter: 'spec'}))
    .pipe(istanbul.writeReports({}));
});

当我开始吞咽"test“任务时,我有以下错误:

代码语言:javascript
复制
[08:34:17] Plumber found unhandled error:
 Error in plugin 'gulp-istanbul'
Message:
    Unable to parse C:\projects\nodejs\mon-notaire\src\app\core\logger\concrete\ConsoleLogger.js

Line 1: Unexpected token

[08:34:17] Finished 'pre-test' after 2.11 s
[08:34:17] Starting 'test'...

stream.js:94
      throw er; // Unhandled stream error in pipe.
            ^
C:\projects\nodejs\mon-notaire\src\test\core\TestConfReader.js:1
(function (exports, require, module, __filename, __dirname) { import ConfReade
                                                              ^^^^^^
SyntaxError: Unexpected reserved word
    at exports.runInThisContext (vm.js:73:16)
    at Module._compile (module.js:443:25)
    at Object.Module._extensions..js (module.js:478:10)
    at Object.Module._extensions.(anonymous function) [as .js] (C:\projects\nodejs\mon-notaire\node_modules\gulp-istanbul\node_modules\istanbul\lib\hook.js:109:37)
    at Module.load (module.js:355:32)
    at Function.Module._load (module.js:310:12)
    at Module.require (module.js:365:17)
    at require (module.js:384:17)
    at C:\projects\nodejs\mon-notaire\node_modules\mocha\lib\mocha.js:192:27
    at Array.forEach (native)
npm ERR! Test failed.  See above for more details.

如何防止这些错误发生?

EN

回答 4

Stack Overflow用户

发布于 2016-01-12 14:05:22

您设置好.babelrc了吗

如果你使用的是最新版本的isparta,它依赖于babel v6,那么你需要像下面这样设置.babelrc。(你还需要做npm install --save-dev babel-preset-es2015 )

代码语言:javascript
复制
{
  "presets": [
    "es2015"
  ]
}
票数 1
EN

Stack Overflow用户

发布于 2019-07-24 16:04:48

来自gulp伊斯坦布尔github页面。

代码语言:javascript
复制
var isparta = require('isparta');
var istanbul = require('gulp-istanbul');

gulp.src('lib/**.js')
  .pipe(istanbul({
    // supports es6
    instrumenter: isparta.Instrumenter
  }));
票数 1
EN

Stack Overflow用户

发布于 2015-12-31 16:33:24

这一行:

代码语言:javascript
复制
Message:
    Unable to parse C:\projects\nodejs\mon-notaire\src\app\core\logger\concrete\ConsoleLogger.js

意味着您在ConsoleLogger.js中的代码中存在问题,因此您可能需要签出该文件。

这一行:

代码语言:javascript
复制
C:\projects\nodejs\mon-notaire\src\test\core\TestConfReader.js:1
(function (exports, require, module, __filename, __dirname) { import ConfReade
                                                              ^^^^^^
SyntaxError: Unexpected reserved word

提示您正在使用ES6,但是在运行它之前,您的吞噬任务没有将其转换为ES5,这就是您收到错误的原因。

我制作了一个yeoman generator,它创建了一个项目来达到这个目的(用ES6编写nodeJs项目),并包含了使用带有源代码映射的伊斯坦布尔的代码覆盖率。你可能会想看看这个。

否则,这就是我从生成器得到的working gulpfile

我使用的是伊斯坦布尔,以及一个名为remap-I的模块。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34542886

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档