2013-08-15 29 views
8

Tôi muốn sử dụng nhân viên thử nghiệm Karma trong dự án AngularJS + Rails của mình. Có ai tích hợp chúng thành công không? Cụ thể hơn, tôi quan tâm để biết cách tích hợp với đường dẫn nội dung (tôi có các tệp có phần mở rộng .coffee.erb, cần phải được xử lý trước hai lần).Làm thế nào để tích hợp Karma với đường dẫn tài sản Rails?

Tôi sử dụng phiên bản Karma 0.10.1 và Rails 4.

Bất kỳ trợ giúp/ví dụ nào sẽ được đánh giá cao.

Trả lời

1

Tôi chưa tích hợp chúng như vậy, nhưng đối với dự án của tôi, tôi đã chọn cách khác và phục vụ từng cách hoàn toàn riêng biệt. Vì vậy, tôi đã tạo ra một ứng dụng đường ray và một ứng dụng góc trong các thư mục riêng biệt, sau đó tôi đã liên kết sym ứng dụng góc vào thư mục công khai của ứng dụng đường ray để máy chủ đường ray sẽ phân phối các kịch bản lệnh và mẫu góc.

Logic của tôi khi làm theo cách này là tôi không muốn hai bộ xử lý trước khác nhau trong cùng một bộ mã và tôi không tự tin rằng các công cụ thử nghiệm sẽ chơi tốt với nhau. Tôi cũng đã chọn sử dụng các kịch bản xây dựng đi kèm với ng-boilerplate, và các kịch bản đó đang làm khá nhiều công việc nếu không sẽ được thực hiện bằng cào hoặc các công cụ khác.

Tôi đã viết một loạt hướng dẫn dựa trên đó, nó có thể được tìm thấy ở đây: http://technpol.wordpress.com/2013/08/11/rails-app-for-angularjs-simple-application/

12

tôi đã phải vật lộn với đánh dấu Karma nhận thức Bánh răng trong ứng dụng ray của tôi, và quản lý để đến với một giải pháp. Bạn cần một công việc cào để lấy danh sách các tài sản khai báo trong application.js của bạn và đưa chúng vào mảng files của tệp cấu hình Karma của bạn.

Trong nhiệm vụ cào của tôi, tôi có điều này:

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 } 

cùng với tập tin cấu hình nghiệp của tôi:

files: [ 
    APPLICATION_SPEC, 
    'app/assets/javascripts/angular/*/*.{coffee,js}', 
    'spec/javascripts/**/*_spec.{coffee,js}' 
] 

nơi tôi thay APPLICATION_SPEC với tất cả các đĩa xích files. Tôi đã viết tutorial nếu bạn muốn có bức tranh lớn.

1

Một số lựa chọn thay thế mà tôi đã thấy cho đến nay:

0

tôi Karma và góc để chơi thoải mái bằng cách làm như sau:

Thêm vào tập tin development.rb của bạn:

config.assets.prefix = "/dev-assets"

này sẽ precompile tài sản của bạn vào public/dev-assets thư mục, cách sản xuất tương tự sẽ chuyển đến public/assets. Sau đó, bạn có thể thêm vào cấu hình nghiệp của mình:

files: [ 
    ... 
    './public/dev-assets/*.js'`, 
    ... 
]; 
Các vấn đề liên quan