Domanda

Sto cercando un sistema per parallelizzare una grande suite di test in un'applicazione Ruby on Rails (utilizzando RSpec, cetrioli) che funziona con JRuby. Cetriolo in realtà non è male, ma la suite completa RSpec prende attualmente quasi 20 minuti per eseguire.

I sistemi posso trovare (Hydra, in parallelo-prova) sembrano usano sborsare, che non è la soluzione ideale per l'ambiente JRuby.

È stato utile?

Soluzione

Non abbiamo una buona risposta per questo tipo di applicazione al momento. Proprio di recente ho lavorato su una forcella di spork che permette di tenere un processo in esecuzione e specifiche rieseguire o funzioni in esso, a condizione che si sta utilizzando un framework app che supporti il ??codice ricaricare (come Rails). Date un'occhiata alla jrubyhub domanda di un esempio di come io uso Spork.

potrebbe essere in grado di generare un'istanza spork per l'applicazione e poi inviare più, filettato richieste ad esso per eseguire specifiche differenti. Ma poi vi affidate ai interni RSpec per essere thread-safe, e purtroppo io sono abbastanza sicuro che non lo sono.

Forse si potrebbe prendere il mio codice come punto di partenza e di costruire un gruppo di istanze Spork, e poi avere un client in grado di distribuire la piattaforma di test su di essi. Non sta andando per risparmiare memoria e sarà ancora richiedere molto tempo per l'avvio, ma se tutti loro una volta e solo il riutilizzo loro per corse ripetute di iniziare, si potrebbe fare alcuni guadagni in termini di efficienza.

Sentitevi liberi di fermarsi user@jruby.codehaus.org o #jruby su freenode per ulteriori idee.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top