Prueba de la aplicación ruby del servidor con pepino
Frecuentes
Visto 446 veces
1
Mi aplicación Ruby ejecuta el servidor Webrick. Quiero probarlo con pepino y quiero asegurarme de que me dé la respuesta correcta.
¿Es normal ejecutar el servidor en un entorno de prueba para realizar pruebas? ¿En qué parte de mi código debo iniciar el proceso del servidor y dónde debo destruirlo?
Ahora inicio el servidor por paso de fondo y destruyo en After hook. Es lento porque el servidor se inicia antes de cada escenario y se destruye después.
Tengo la idea de iniciar el servidor en env.rb y destruirlo en el bloque at_exit declarado también en env.rb. ¿Qué piensa usted al respecto?
¿Conoces algún patrón para ese problema?
2 Respuestas
1
Yo uso Spork para esto. Inicia uno o más servidores y tiene la capacidad de recargarlos cuando sea necesario. De esta manera, cada vez que ejecute sus pruebas, no incurrirá en los gastos generales de encender Rails.
https://github.com/sporkrb/spork
Echa un vistazo a este RailsCast para conocer los detalles: http://railscasts.com/episodes/285-spork
contestado el 03 de mayo de 12 a las 21:05
1
Dado que Cucumber ya no es compatible con spork (¿por qué?), Uso el siguiente código en env.rb. Para bifurcar un proceso, uso esta lib: https://github.com/jarib/childprocess
require 'childprocess'
ChildProcess.posix_spawn = true
wkDir=File.dirname(__FILE__)
server_dir = File.join(wkDir, '../../site/dev/bin')
#Because I use rvm , I have to run the server thru a shell
@server = ChildProcess.build("sh","-c","ruby pageServer.rb -p 4563")
@server.cwd = server_dir
@server.io.inherit!
@server.leader = true
@server.start
at_exit do
puts "----------------at exit--------------"
puts "Killing process " + @server.pid.to_s
@server.stop
if @server.alive?
puts "Server is still alive - kill it manually"
end
end
Respondido 25 Jul 14, 12:07
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas ruby cucumber bdd webrick or haz tu propia pregunta.