Frage

Ich bin auf der Suche nach einem System, eine große Reihe von Tests in einer Ruby on Rails-Anwendung parallelisieren (mit rspec, Gurken), die JRuby arbeitet mit. Gurke ist eigentlich gar nicht so schlecht, aber die volle RSpec Suite nimmt zur Zeit fast 20 Minuten zu laufen.

Die Systeme, die ich finden kann (hydra Parallel-Test) schauen, wie sie benutzen gabeln, die nicht die ideale Lösung für die JRuby Umgebung.

War es hilfreich?

Lösung

Wir haben keine gute Antwort für diese Art der Anwendung jetzt. Erst vor kurzem war ich auf einer Gabel von Spork , dass Sie einen Prozess zu halten, ermöglicht es laufen und wieder laufen specs oder Funktionen in ihm, sofern Sie eine App Framework verwenden, dass Unterstützungen Code (wie Rails) erneut zu laden. Werfen Sie einen Blick auf die jrubyhub Anwendung für ein Beispiel, wie ich Spork verwenden.

Sie könnte Lage sein, eine Spork Instanz für Ihre Anwendung, um zu laichen und dann mehrere senden, Gewinde Anfragen an sie unterschiedliche Spezifikationen zu laufen. Aber dann sind Sie auf RSpec Interna angewiesen zu sein Thread-sicher, und leider bin ich ziemlich sicher, dass sie nicht sind.

Vielleicht, könnte man meinen Code als Ausgangspunkt nehmen und einen Cluster von Spork Instanzen erstellen und dann einen Client, dass Ihr Test-Suite über sie verteilen kann. Es ist ja nicht um Speicherplatz sparen gehen und wird noch lange dauern, zu starten, aber wenn man sie alle beginnen, sobald und nur wiederverwendet sie für wiederholte Durchläufe, Sie könnten einige Effizienzgewinne machen.

Fühlen Sie sich frei zu Anschlag von user@jruby.codehaus.org oder #jruby auf freenode für mehr Ideen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top