Karma + Rails:文件结构?

Ala*_* H. 6 ruby-on-rails ruby-on-rails-3 karma-runner

当使用业力 javascript测试库(néeTestacular)和Rails时,应该在哪里放置测试文件和模拟数据?

将它们放在/ assets /中似乎很奇怪,因为我们实际上并不想将它们提供给用户.(但我想如果它们根本就不会被预编译,那么这不是一个实际问题,对吧?)

Pet*_*ich 8

通过这个帖子:https://groups.google.com/forum/#!topic/angular/Mg8YjKWbEJ8

我正在尝试看起来像这样的东西:

// list of files / patterns to load in the browser
files: [
  'http://localhost:3000/assets/application.js',
  'spec/javascripts/*_spec.coffee',
  {
    pattern: 'app/assets/javascripts/*.{js,coffee}',
    watched: true,
    included: false,
    served: false
  }
],
Run Code Online (Sandbox Code Playgroud)

它监视app js文件,但不包括它们或提供它们,而是包括由rails和sprockets提供的application.js.

我也一直在摆弄与https://github.com/lucaong/sprockets-chain,但还没有找到一种方法,使用requirejs从宝石(如jQuery护栏或angularjs护栏)内包括的js文件.


Ala*_* H. 3

我们最终将测试和模拟数据放在 Rails app\xe2\x80\x99sspec文件夹下,并配置 Karma 以导入它们以及我们的测试代码app/assets

\n\n

为我们工作。欢迎其他想法。

\n\n

我们的config/karma.conf.js文件:

\n\n
basePath = \'../\';\n\nfiles = [\n  JASMINE,\n  JASMINE_ADAPTER,\n\n  //libs\n  \'vendor/assets/javascripts/angular/angular.js\',\n  \'vendor/assets/javascripts/angular/angular-*.js\',\n  \'vendor/assets/javascripts/jquery-1.9.1.min.js\',\n  \'vendor/assets/javascripts/underscore-min.js\',\n  \'vendor/assets/javascripts/angular-strap/angular-strap.min.js\',\n  \'vendor/assets/javascripts/angular-ui/angular-ui.js\',\n  \'vendor/assets/javascripts/angular-bootstrap/ui-bootstrap-0.2.0.min.js\',\n\n  //our app!\n  \'app/assets/javascripts/<our-mini-app>/**\',\n\n  // and our tests\n  \'spec/javascripts/<our-mini-app>/lib/angular/angular-mocks.js\',\n  \'spec/javascripts/<our-mini-app>/unit/*.coffee\',\n  // mocked data\n  \'spec/javascripts/<our-mini-app>/mocked-data/<data-file>.js.coffee\',\n];\n\nautoWatch = true;\n\nbrowsers = \'PhantomJS\'.split(\' \')\n\npreprocessors = {\n  \'**/*.coffee\': \'coffee\'\n}\n
Run Code Online (Sandbox Code Playgroud)\n

  • 这是一个有趣的方法,我不喜欢的是它没有完全考虑资产管道(您可能有 ERB javascript 文件等)。更强大的解决方案必须以某种方式与管道集成。 (3认同)