CoffeeScript と CommonJS プリプロセッサを使用して Karma をセットアップしようとしていますrequire is not defined
が、ターミナルにエラー ログが表示されます。
ソースとテスト ファイルが common-js ブリッジ js ファイルの前に読み込まれるため、読み込み順序の問題のようです。読み込み順序を指定するにはどうすればよいですか? または、私の設定に他の問題がありますか?
以前の構成のエラーは、ERROR [preprocessor.coffee]: unexpected MATH
node_modules フォルダー内のすべてのコーヒー ファイルにプリプロセッサが適用されていたという問題でした。
私Karma.config.coffee
はこのように見えます:
module.exports = (config) ->
config.set
frameworks: ['jasmine', 'commonjs']
preprocessors:
# source files, that you wanna generate coverage for
# do not include tests or libraries
# (these files will be instrumented by Istanbul)
'src/**/*.coffee': ['coffee', 'commonjs', 'coverage']
'spec/**/*.coffee': ['coffee']
coffeePreprocessor:
# options passed to the coffee compiler
options:
bare: true
sourceMap: false
# transforming the filenames
# transformPath: (path) ->
# path.replace(/\.coffee$/, '.js')
commonjsPreprocessor:
basePath: '../'
options:
isCoffeeScript: true
pathReplace: (path) ->
path.replace(/^src\//, '')
# coverage reporter generates the coverage
reporters: ['progress', 'coverage']
files: [
'./node_modules/karma-commonjs/client/commonjs_bridge.js'
'src/**/*.coffee'
'spec/**/*.coffee'
]
# optionally, configure the reporter
coverageReporter:
type : 'html'
dir : 'coverage/'
plugins: [
require './node_modules/karma-commonjs-preprocessor/index'
'karma-commonjs-preprocessor'
'karma-coverage'
'karma-jasmine'
'karma-commonjs'
'karma-coffee-preprocessor'
'karma-firefox-launcher'
]
# level of logging
# possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG
logLevel: config.LOG_DEBUG
私のディレクトリ構造は次のようになります。
$ node_modules\.bin\jasmine-node spec --coffee --color
テストが正常に実行されるように jasmine-node で実行すると、テスト ファイルが機能するはずです。イスタンブールを Windows 8.1 (64 ビット) で直接 CoffeeScript と連携させることができなかったので、Karma を使用したいと思います (コマンド ラインの問題と思われます)。
現時点では、カバレッジは html レポートに何も追加していませんが、それはrequire undefined
問題が原因だと思います。
ブラウザ コンソールに次のエラーが表示されます。