多くの単体テストがあるREST APIを構築しています。
コードカバレッジなど、それらに関する情報が必要です。
私は、IstanbulとIspartaを扱った多くの記事、および ES6 コードのテスト カバレッジ (mocha の助けを借りて) を実行する能力 (この記事) を読んだので、それらを使用したいと思いました。
NodeJS 0.12.7 を使用しており、Babel トランスパイラーを使用して ES6 コードを ES5 に変換しています。
次のようなgulpタスクを使用します。
/* Unit test task */
gulp.task('pre-test', function() {
return gulp.src(['src/app/**/*.js'])
.pipe(plumber())
.pipe(istanbul({
instrumenter: isparta.Instrumenter,
includeUntested: true
}))
.pipe(istanbul.hookRequire());
});
gulp.task('test:unit', ['pre-test'], function() {
return gulp.src(['src/test/unit/**/*.js'])
.pipe(mocha({
reporter: 'spec'
}))
.pipe(istanbul.writeReports({}));
});
ただし、以下のようなツールを使用しようとすると、次のようなエラーが発生します。
C:\projects\nodejs\project\src\test\unit\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)
これは、イスタンブールが ES6 コードを認識できないことを意味します。私はおそらくそこに何かが欠けています。
だから私の質問は:
Node 0.12.7 を使用して、ES6 コード (各クラス コンストラクターで try/catch のような多くのコードが生成される ES5 コードではなく) で単体テストを行い、テスト カバレッジを適用するにはどうすればよいですか?