2012-05-03 96 views
1

我的ruby應用程序運行Webrick服務器。我想用黃瓜來測試它,並且希望確保它給我正確的迴應。用黃瓜測試服務器ruby-application

在測試環境中運行服務器在測試環境中正常嗎?在我的代碼中,我應該開始服務器進程,並在哪裏銷燬它?

現在我通過後臺步驟啓動服務器並在掛鉤後將其銷燬。這很慢,因爲服務器在每個場景之前啓動並在之後銷燬。

我有想法在env.rb中啓動服務器,並在env.rb中聲明的at_exit塊中銷燬它。你怎麼看待這件事?

您是否知道該問題的任何模式?

回答

1

由於黃瓜不支持任何叉勺更多(爲什麼?)我用下面的代碼在env.rb 到餐桌的過程我用這個庫: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