カルマ/ジャスミンを使用して、coffeescript/angularjsコードの単体テストに成功しています。
テストの 1 つが失敗したため、coffeescript コードにブレークポイントを配置したいと考えています。
WebStorm 7 がトランスパイルされた JavaScript を元の coffeescript に関連付けることができるように、ソースマップを提供する必要があることを理解しています (以下のカルマ構成を参照)。
これらの質問は私が始めるのに役立ちましたが、問題を完全には解決していません:
- coffeescriptのデバッグ時にwebstorm 7/karmaサーバーが間違ったソースマップファイルを探している
- AngularJS、Jasmine、CoffeScript での Karma-runner の使用
ここで、デバッグすると、ブレークポイントを含むすべての coffeescript ファイルが一時停止しますが、ブレークポイントではなく、通常はファイルの最初の行またはブレークポイントを含む関数です。
実行を継続すると、単純に最後まで実行され、内側のブレークポイントにはヒットしません。
coffeescript をステップ実行しようとすると、jasmine.js コードに移動します。jasmine コードのステップ スルーを続けると、テスト スイートは最終的に完了しますが、ブレークポイントには到達しません。
これが私のカルマ設定の関連部分です。
カルマ.config.js
files: [
'App.UnitTests/lib/http_ajax.googleapis.com_ajax_libs_angularjs_1.2.0-rc.2_angular.js',
'App.UnitTests/lib/http_ajax.googleapis.com_ajax_libs_angularjs_1.2.0-rc.2_angular-sanitize.js',
'App.UnitTests/lib/http_angular-ui.github.io_ui-router_release_angular-ui-router.js',
'App.UnitTests/lib/http_ajax.googleapis.com_ajax_libs_angularjs_1.2.0-rc.2__angular-mocks.js',
'App.FrontEnd/coffee/**/*.coffee',
'App.UnitTests/tests/**/*.spec.coffee'
],
preprocessors : {
'App.FrontEnd/coffee/**/*.coffee':'coffee',
'App.UnitTests/tests/**/*.spec.coffee':'coffee'
},
coffeePreprocessor: {
options: { bare: true, sourceMap: true },
transformPath: function ( path ) { return path.replace( /.js$/, '.coffee' ); }
},