2011-01-10 22 views
5

Cuando ejecuto mis escenarios de pepino como un todo, o con el comando: pepino obtengo 7 pasos que fallan. Cuando los ejecuto individualmente con la etiqueta de trabajo en progreso pasan bien.¿Por qué mis escenarios de pepino fallan cuando los pasos se ejecutan juntos, pero pasan cuando se ejecutan singularmente?

No creo que sea un problema de estado de la base de datos ... Estoy ejecutando transacciones y también intenté ejecutar sin limpiar la base de datos con el limpiador de bases de datos ... todavía no ayuda.

Intenté ejecutar el depurador pero parece que no funciona cuando ejecuto el comando pepino. Solo funciona cuando corro con la etiqueta de trabajo en progreso: cucumber -p wip

Pensé que podría ser que las cosas estén funcionando demasiado rápido y que el capibara no esté revisando las cosas correctamente?

¿Alguna idea?

+3

Muéstrenos cómo fallan, proporcionaría un contexto útil. –

+0

El título de la pregunta suena fantastisch. –

+0

Fracasan porque los datos de configuración no parecen estar en la base de datos ... Pensé que era un problema con las transacciones, pero no lo creo. Por ejemplo: no hay ningún enlace con el título, id o texto 'Editar' encontrado (Capybara :: ElementNotFound) ... ¿Hay alguna manera de ejecutar la instrucción del depurador cuando se ejecuta el comando pepino. Solo parece llegar a los puntos de interrupción si ejecuto cucumber -p wip – Kirk

Respuesta

2

Eureka! He estado teniendo este mismo problema por un tiempo ahora - mis pruebas se volvieron más y más lentas cuanto más agregué - también, algunas pruebas fallarían aleatoriamente, pero solo cuando se ejecutara como una suite completa - después de que mis pruebas terminasen, solo ejecutaría el función de nuevo y viola! todos pasando. Muy frustrante, pero la parte MÁS frustrante fue la velocidad, recientemente actualicé al leopardo de las nieves y compilé todo hasta 64bits. ¿El resultado? ¡Mis pruebas pasaron de 7 minutos a 32!

Sin embargo, hay una pista: las aplicaciones de 64 bits usan más memoria para hacer lo mismo, al parecer, sin embargo, cuando estaba ejecutando mis pruebas, la memoria de mi máquina nunca estuvo a punto de agotarse. Sugerencia # 2? Webrat iba rápido, solo cuando se usaba culerity/celerity para probar javascript, las cosas realmente se estaban desacelerando.

Después de hurgar descubrí que jruby le dice a java que le dé un tamaño máximo de almacenamiento de 512 mbs. JRuby le permite configurar las opciones de Java cuando se invoca, y culerity permite que una variable de entorno invoque jruby de la forma que desee. Efectivamente, en ese momento, Java dejaría de consumir memoria y el procesador intentaría prenderse fuego. ¿Entonces estas lista? Aquí está:

JRUBY_INVOCATION="jruby -J-Xmx1024m" cucumber

Eso aumentó mi tamaño de la pila a un gigabyte y mi tiempo de prueba se dejó caer a 7 minutos! ¿Es asi? ¿Lo conseguí? ¡Espero que ayude!

+0

guau, 7 minutos apestan ... ¿ha intentado acelerar las pruebas? –

Cuestiones relacionadas