首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用RequireJS加载规范的Karma,而不是源和库文件

使用RequireJS加载规范的Karma,而不是源和库文件
EN

Stack Overflow用户
提问于 2014-01-28 05:51:59
回答 1查看 658关注 0票数 2

我正在使用karma 0.10.9,其中包含requirejs、coffeescript、jasmine和jasmine-sprockets (因为我在做一个RoR项目,我们有一些文件只包含sprockets指令)。

当我启动karma时,我收到"Executed 0 of 0 ERROR“消息。

在runner页面(localhost:9876)上,lib和src文件没有加载,但specs加载了。控制台中没有错误。当我将lib或src文件的url直接复制到地址栏中时,该文件被加载。

在调试页面上,加载所有文件(库、源代码和测试)。

我一无所知。

这是我的karma.conf.js:

代码语言:javascript
复制
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.cafe:

代码语言:javascript
复制
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

感谢您的帮助。

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2014-09-09 00:01:51

您的规范应该要求它测试的文件。在你的karma.conf.js中,文件节应该有你的源文件。一旦这些文件被报应送达。然后,您可以在您的规格中要求它们。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21392479

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档