Wie integriert man Karma mit Rails Asset-Pipeline?

8

Ich würde gerne den Karma Test Runner in meinem AngularJS + Rails Projekt verwenden. Hat jemand sie erfolgreich integriert? Genauer gesagt bin ich daran interessiert zu wissen, wie ich in die Asset-Pipeline integrieren kann (ich habe Dateien mit der Erweiterung .coffee.erb , die zweimal vorverarbeitet werden müssten).

Ich verwende Karma Version 0.10.1 und Rails 4.

Jede Hilfe / Beispiele wären willkommen.

    
Misha Moroshko 15.08.2013, 00:06
quelle

4 Antworten

12

Ich habe Schwierigkeiten damit, Karma in meiner Rails-App auf Kettenräder aufmerksam zu machen, und habe es geschafft, mit einer Lösung zu kommen. Sie benötigen eine Rake-Aufgabe, um die Liste der Assets in application.js deklarieren zu lassen und sie in das Array files Ihrer Karma-Konfigurationsdatei einzufügen.

In meiner Rake-Aufgabe habe ich Folgendes:

%Vor%

zusammen mit meiner Karma-Konfigurationsdatei:

%Vor%

wo ich APPLICATION_SPEC mit allen Kettenrad files ersetze. Ich habe ein Tutorial geschrieben, wenn Sie das große wollen Bild.

    
Sébastien Saunier 04.02.2014 18:26
quelle
1

Ich habe sie nicht als solche integriert, aber für mein Projekt habe ich beschlossen, den anderen Weg zu gehen und jeden einzeln zu bedienen. Also habe ich eine Rails-App und eine eckige App in separaten Verzeichnissen erstellt, dann habe ich die eckige App mit dem öffentlichen Verzeichnis der Rails-App verknüpft, so dass der Rails-Server eckige Skripte und Templates anbietet.

Meine Logik bei dieser Vorgehensweise war, dass ich nicht zwei verschiedene Vorprozessoren in demselben Code verwenden wollte, und ich war nicht zuversichtlich, dass die Test-Tools gut miteinander funktionieren würden. Ich habe mich auch dafür entschieden, die Build-Skripte zu verwenden, die mit ng-boilerplate geliefert wurden, und diese Skripte machen ziemlich viel Arbeit, die sonst durch Rake oder andere Tools erledigt würde.

Ich habe eine Tutorial-Serie darüber geschrieben, die hier zu finden ist: Ссылка

    
PaulL 26.08.2013 21:53
quelle
1

Einige der Alternativen, die ich bisher gesehen habe:

  • Definieren Sie Ihre Erb-Dateien in der Karma-Konfiguration, möglicherweise für einfache Fälle. (aus Ссылка )
  • Erstellen Sie die Rails-App mit Middleman und verwenden Sie eine Karma-Konfiguration basierend auf der Middleman-Ausgabe
  • Verwenden Sie Ссылка in der Karma-Konfiguration, anstatt direkt auf die Dateien zu verweisen ( Ссылка )
  • Benutze / adaptiere karma.rake Aufgabe von Sebastien ( Ссылка )
  • Verwenden Sie ein Karma-Plugin, um die Lücke zu füllen (Bisher gesehen: Karma-Kettenräder , < a href="https://github.com/steel/karma-sprockers-mincer"> Ссылка )
Hakan Serce 04.03.2015 00:35
quelle
0

Ich habe Karma und Angular dazu gebracht, nett zu spielen, indem ich Folgendes tue:

Fügen Sie Ihrer development.rb -Datei hinzu:

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

Damit werden Ihre Assets im Ordner public/dev-assets vorkompiliert, genauso wie die Produktion in public/assets geht. Sie können dann zu Ihrer Karma-Konfiguration hinzufügen:

%Vor%     
Justin Kruse 08.07.2017 21:48
quelle