2013-08-15 16 views
8

Vorrei utilizzare il test runner Karma nel mio progetto AngularJS + Rails. Qualcuno li ha integrati con successo? Più specificamente, sono interessato a sapere come integrarmi con la pipeline di asset (ho file con estensione .coffee.erb, che dovrebbero essere pre-elaborati due volte).Come integrare Karma con la pipeline di asset di Rails?

Io uso Karma versione 0.10.1 e rotaie 4.

Qualsiasi aiuto/esempi sarebbe apprezzato.

risposta

1

Non li ho integrati come tali, ma per il mio progetto ho scelto di andare dall'altra parte e di servirne separatamente. Quindi ho creato un'app per rails e un'app angolare in directory separate, quindi ho collegato l'app angolare alla directory pubblica dell'app rails in modo che il server rails serva gli script angolari e i modelli.

La mia logica nel farlo in questo modo era che non volevo due diversi pre-processori nello stesso set di codice, e non ero sicuro che gli strumenti di test sarebbero stati piacevoli l'uno con l'altro. Ho anche scelto di usare gli script di build forniti con ng-boilerplate, e quegli script stanno facendo un bel po 'di lavoro che altrimenti sarebbe stato fatto da rake o altri strumenti.

ho scritto una serie di tutorial basato intorno a quella, si può trovare qui: http://technpol.wordpress.com/2013/08/11/rails-app-for-angularjs-simple-application/

12

ho lottato con la marcatura Karma consapevole della Pignoni nella mia applicazione Rails, e riescono a venire con una soluzione. Hai bisogno di un'attività rake per ottenere l'elenco delle risorse dichiarate nel tuo application.js e inserirle nell'array files del tuo file di configurazione Karma.

Nel mio compito rake ho questo:

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 } 

insieme con il mio file di configurazione del karma:

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

dove sostituisco APPLICATION_SPEC con tutto il pignone files. Ho scritto un tutorial se vuoi la foto grande.

1

Alcune delle alternative che ho visto finora:

0

ho ottenuto Karma e angolare di bel gioco nel modo seguente:

Aggiungi al file development.rb:

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

Ciò precompilare gli asset in public/dev-assets cartella, allo stesso modo la produzione andrà a public/assets. È quindi possibile aggiungere alla propria configurazione karma:

files: [ 
    ... 
    './public/dev-assets/*.js'`, 
    ... 
]; 
Problemi correlati