如何将Karma与Rails资产管道集成?

Mis*_*hko 8 ruby-on-rails asset-pipeline angularjs karma-runner

我想在我的AngularJS + Rails项目中使用Karma测试运行器.有没有人成功整合它们?更具体地说,我很想知道如何与资产管道集成(我有扩展名的文件,.coffee.erb需要预处理两次).

我使用Karma版本0.10.1和Rails 4.

任何帮助/示例将不胜感激.

Séb*_*ier 12

我一直在努力在我的rails应用程序中标记Karma意识到Sprockets,并设法提供解决方案.您需要一个rake任务来获取您声明的资产列表application.js,并将它们注入files您的Karma配置文件的数组中.

在我的rake任务中我有这个:

sprockets = Rails.application.assets
sprockets.append_path Rails.root.join("spec/karma")
files = Rails.application.assets.find_asset("application_spec.js").to_a.map {|e| e.pathname.to_s }
Run Code Online (Sandbox Code Playgroud)

以及我的业力配置文件:

files: [
  APPLICATION_SPEC,
  'app/assets/javascripts/angular/*/*.{coffee,js}',
  'spec/javascripts/**/*_spec.{coffee,js}'
]
Run Code Online (Sandbox Code Playgroud)

APPLICATION_SPEC用所有链轮替换的地方files.如果你想要全局,我写了一个教程.


Pau*_*ulL 1

我还没有将它们集成在一起,但对于我的项目,我选择了相反的方式,并完全单独地为每个服务提供服务。因此,我在不同的目录中创建了一个 Rails 应用程序和一个 Angular 应用程序,然后将 Angular 应用程序符号链接到 Rails 应用程序的公共目录中,以便 Rails 服务器提供 Angular 脚本和模板。

我这样做的逻辑是,我不想在同一组代码中使用两个不同的预处理器,并且我不相信测试工具能够很好地配合。我还选择使用 ng-boilerplate 附带的构建脚本,这些脚本正在做相当多的工作,否则这些工作将由 rake 或其他工具完成。

我一直在围绕此编写一个教程系列,可以在这里找到:http ://technpol.wordpress.com/2013/08/11/rails-app-for-angularjs-simple-application/