首页 文章

带有RequireJS的Karma加载规范但不加载src和lib文件

提问于
浏览
2

我正在使用带有requirejs,coffeescript,jasmine和jasmine-sprockets的业力0.10.9(因为我正在研究一个RoR项目,我们有一些只包含sprockets指令的文件) .

当我开始业力时,我得到“执行0 0错误”消息 .

看起来在跑步者页面(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

任何帮助赞赏 .

谢谢!

1 回答

  • 0

    您的规范应该要求它测试的文件 . 在你的karma.conf.js文件部分应该有你的src文件 . 一旦文件由业力提供 . 然后你可以在你的规范中要求它们 .

相关问题