Question

Je cherche un système pour paralléliser une grande série de tests dans une application Ruby on Rails (en utilisant rspec, concombre) qui fonctionne à l'aide JRuby. Le concombre est en fait pas trop mal, mais la suite complète Rspec prend actuellement près de 20 minutes pour courir.

Les systèmes que je peux trouver (hydra, parallèle-test) regardent comme ils utilisent bifurquent, ce qui est la solution idéale pour l'environnement JRuby.

Était-ce utile?

La solution

Nous n'avons une bonne réponse pour ce genre d'application en ce moment. Tout récemment, je travaillais sur une fourchette de Spork qui vous permet de garder un processus en cours d'exécution et les spécifications Réexécutez ou des caractéristiques, à condition que vous utilisez un cadre d'application qui supporte du code rechargeant (comme Rails). Jetez un oeil à la jrubyhub demande un exemple de la façon dont je l'utilise Spork.

peut être en mesure de reproduire une instance de Spork pour votre application, puis envoyer plusieurs, taraudée demandes à lui pour exécuter différentes spécifications. Mais alors vous comptez sur RSpec pour être internals thread-safe, et, malheureusement, je suis sûr qu'ils ne sont pas.

Peut-être que vous pourriez prendre mon code comme point de départ et de construire un cluster d'instances de Spork, et un client qui peut distribuer votre suite de tests à travers eux. Il ne va pas économiser de la mémoire et prendra encore beaucoup de temps à démarrer, mais si vous les tout recommencer une fois et il suffit de les réutiliser pour des courses répétées, vous pouvez faire des gains en matière d'efficacité.

Ne hésitez pas à arrêter par user@jruby.codehaus.org ou #jruby sur freenode pour plus d'idées.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top