AMD スタイルのモジュールで Backbone/Marionette と RequireJS を使用してアプリを作成し、それにカバレッジ ステップを追加しようとしましたが、実行時istanbul cover myTestFile.js
に istanbul で次のエラーがスローされます。
__cov_EsyvGtIcLKP7TgjU5WMSQw.s['1']++;define(関数(必須){__cov_EsyvGtIcL
define is not defined
ブラウザ側のコードをカバーしたことがなく、AMD スタイル モジュールを使用するのはこれが初めてなので、これを修正する方法はわかりません。
イスタンブールも取材レポートを書いたと言っていますが、それが実際にうまくいったかどうかはわかりません。
どんなポインタでも大いに役立ちます。コマンドの完全な出力は次のistanbul cover mytestfile.js
とおりです (一部の詳細が変更されています)。
=============================================================================
Writing coverage object [/Users/myuser/src/myapp/coverage/coverage.json]
Writing coverage reports at [/Users/myuser/src/myapp/coverage]
=============================================================================
=============================== Coverage summary ===============================
Statements : 5% ( 1/20 )
Branches : 0% ( 0/2 )
Functions : 0% ( 0/5 )
Lines : 5% ( 1/20 )
================================================================================
/Users/myuser/src/myapp/app/myapp/app-collection.js:9
__cov_EsyvGtIcLKP7TgjU5WMSQw.s['1']++;define(function(require){__cov_EsyvGtIcL
^
ReferenceError: define is not defined
at Object.<anonymous> (/Users/mysuser/src/myapp/app/myapp/app-collection.js:9:39)
at Module._compile (module.js:460:26)
at Object.Module._extensions.(anonymous function) [as .js] (/usr/local/lib/node_modules/istanbul/lib/hook.js:107:24)
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 Object.<anonymous> (/Users/myuser/src/myapp/test/specs/applications-tests.js:9:25)
at Module._compile (module.js:460:26)
at Object.Module._extensions..js (module.js:478:10)