【发布时间】:2014-07-24 18:55:05
【问题描述】:
我正在编写依赖于两个不同 Web 服务的自动化测试,我决定使用两个非常基本的 Sinatra 应用程序来模拟这些测试。但是,我无法在我的 Cucumber env 文件中启动多个 Sinatra 实例。第二个 Sinatra 实例在启动后立即停止。
这是我开始测试时得到的输出的 sn-p
== Sinatra/1.4.5 has taken the stage on 9000 for development with backup from Thin
Thin web server (v1.6.2 codename Doc Brown)
Maximum connections set to 1024
Listening on localhost:9000, CTRL+C to stop
== Sinatra/1.4.5 has taken the stage on 8082 for development with backup from Thin
Thin web server (v1.6.2 codename Doc Brown)
Maximum connections set to 1024
Listening on localhost:8082, CTRL+C to stop
Stopping ...
== Sinatra has ended his set (crowd applauds)
如您所见,第一个服务启动并运行良好,但第二个服务启动正常,但随后立即开始停止
Sinatra 应用程序 1
class MockService1 < Sinatra::Base
get '/some/endpoint' do
response =
{
enabled: false
}
end
end
Sinatra 应用 2
class MockService2 < Sinatra::Base
get '/some/endpoint' do
response =
{
enabled: false
}
end
end
在我的 Cucumber 环境文件中
Thread.new do
MockService1.run! host: 'localhost', port: '9000'
end
Thread.new do
MockService2.run! host: 'localhost', port: '8082'
end
【问题讨论】: