5
我想测试使用rspec结合法拉第和faraday_middleware的Rails应用程序的json响应。要使用法拉第,需要应用程序URL。在测试中我想使用localhost +端口号。Rails应用程序的端口号在rspec测试
问题是,我怎样在rspec测试环境中获取或设置当前应用程序实例的端口号?
任何想法?
我想测试使用rspec结合法拉第和faraday_middleware的Rails应用程序的json响应。要使用法拉第,需要应用程序URL。在测试中我想使用localhost +端口号。Rails应用程序的端口号在rspec测试
问题是,我怎样在rspec测试环境中获取或设置当前应用程序实例的端口号?
任何想法?
我有同样的需要(+的Watir RSpec的),但问题是:有是在测试过程中运行默认情况下没有机架堆叠...
我发现这个解决方案:
在spec_helper.rb
:
HTTP_PORT = 4000
test_instance_pid = fork do
exec 'unicorn_rails -E test -p %d' % HTTP_PORT
end
at_exit do
Process.kill "INT", test_instance_pid
Process.wait
end
它对所有规格测试启动一次测试堆栈,并在最后杀死它。 (在此示例中,我使用的麒麟,但是我们可以想象使用任何其他服务器)
在规范,我重用HTTP_PORT
不断建立网址:需要确切的
browser.goto "http://localhost:#{HTTP_PORT}/"
上午一样。希望你能得到答案。 – Tass
刚发布了对类似问题的回复[here](http://stackoverflow.com/a/17496025/535171)。 – JKubecki