1

CoffeeScript と CommonJS プリプロセッサを使用して Karma をセットアップしようとしていますrequire is not definedが、ターミナルにエラー ログが表示されます。

ソースとテスト ファイルが common-js ブリッジ js ファイルの前に読み込まれるため、読み込み順序の問題のようです。読み込み順序を指定するにはどうすればよいですか? または、私の設定に他の問題がありますか?

以前の構成のエラーは、ERROR [preprocessor.coffee]: unexpected MATHnode_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問題が原因だと思います。

ブラウザ コンソールに次のエラーが表示されます。 ここに画像の説明を入力

4

0 に答える 0