2

私は、requirejs、coffeescript、jasmine、および jasmine-sprockets で karma 0.10.9 を使用しています (RoR プロジェクトに取り組んでおり、sprockets ディレクティブのみを含むいくつかのファイルがあるため)。

カルマを開始すると、「Executed 0 of 0 ERROR」というメッセージが表示されます。

ランナー ページ (localhost:9876) のように見えますが、lib ファイルと src ファイルは読み込まれませんが、スペックは読み込まれます。コンソールにエラーはありません。lib または src ファイルの URL をアドレス バーに直接コピーすると、ファイルが読み込まれます。

デバッグ ページでは、すべてのファイル (ライブラリ、ソース、およびテスト) が読み込まれます。

私は無知です...

ここに私のkarma.conf.jsがあります:

module.exports = function(config) {
  config.set({
    basePath: '../../..',

    frameworks: ['jasmine', 'requirejs'],

    files: [
      {pattern: 'vendor/assets/javascripts/**/*.js', included: false},
      {pattern: 'app/assets/javascripts/v5/**/*.coffee', included: false},
      'spec/javascripts/helpers/jasmine-jquery.js',
      'spec/javascripts/helpers/maps-helper.js',
      {pattern: 'spec/javascripts/fixtures/*.html', watched: true, included: false, served: true},
      {pattern: 'spec/javascripts/v5/**/*_spec.coffee', included: false},
      'spec/javascripts/v5/test-main.coffee'
    ],

    hostname: [
      'localhost'
    ],

    exclude: [
    ],

    preprocessors: {
      '**/*.coffee': ['coffee']
    },

    coffeePreprocessor: {
      // transforming the filenames
      transformPath: function(path) {
        return path.replace(/(.js.coffee|.coffee)/, '.js');
      }
    },

    reporters: ['progress'],

    port: 9876,

    colors: true,

    logLevel: config.LOG_INFO,

    autoWatch: true,

    browsers: [],

    captureTimeout: 20000,

    singleRun: false,

    reportSlowerThan: 500,

    sprocketsPath: 'vendor/assets/javascripts',
    sprocketsBundles: [
      'bootstrap.js',
      'plugins_jquery.js'
    ],

    plugins: [
      'karma-jasmine',
      'karma-requirejs',
      'karma-coffee-preprocessor',
      'karma-sprockets'
    ]
  });
};

そして、test-main.coffee:

tests = []
for file of window.__karma__.files
  tests.push file  if /_spec\.js$/.test(file) if window.__karma__.files.hasOwnProperty(file)

# https://github.com/karma-runner/karma-requirejs/issues/6#issuecomment-23037725
for file of window.__karma__.files
  window.__karma__.files[file.replace(/^\//, "")] = window.__karma__.files[file]

requirejs.config

  baseUrl: 'base/app/assets/javascripts/'

  paths:
    jquery: '../../../vendor/assets/javascripts/jquery'
    underscore: '../../../vendor/assets/javascripts/lodash'
    backbone: '../../../vendor/assets/javascripts/backbone'
    // etc.pp.

  shim:
    backbone:
      deps: ['jquery', 'underscore', 'json2']
      exports: 'Backbone'
    json2:
      exports: 'JSON'

  deps: tests

  callback: window.__karma__.start

どんな助けでも感謝します。

ありがとう!

4

1 に答える 1

0

仕様には、テストするファイルが必要です。karma.conf.js の files セクションに src ファイルが含まれている必要があります。ファイルがカルマによって提供されると。その後、仕様でそれらを要求できます。

于 2014-09-08T16:01:50.523 に答える