Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails应用程序&x27;rspec测试中的s端口号_Ruby On Rails_Rspec - Fatal编程技术网

Ruby on rails Rails应用程序&x27;rspec测试中的s端口号

Ruby on rails Rails应用程序&x27;rspec测试中的s端口号,ruby-on-rails,rspec,Ruby On Rails,Rspec,我想使用rspec结合faraday和faraday_中间件测试rails应用程序的json响应。要使用法拉第,需要应用程序URL。在测试中,我希望使用localhost+端口号 问题是,如何在rspec测试环境中获取或设置当前应用程序实例的端口号 也有类似的问题,但没有令人满意的答案和答案 有什么想法吗?我也有同样的需求(Watir+RSpec),但问题是:在测试期间,默认情况下没有运行机架堆栈 我找到了这个解决方案: 在spec\u helper.rb中: HTTP_PORT = 4000

我想使用rspec结合faraday和faraday_中间件测试rails应用程序的json响应。要使用法拉第,需要应用程序URL。在测试中,我希望使用localhost+端口号

问题是,如何在rspec测试环境中获取或设置当前应用程序实例的端口号

也有类似的问题,但没有令人满意的答案和答案

有什么想法吗?

我也有同样的需求(Watir+RSpec),但问题是:在测试期间,默认情况下没有运行机架堆栈

我找到了这个解决方案:

spec\u 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
在所有规范测试中启动测试堆栈一次,并在最后杀死它。(在这个示例中,我使用的是unicorn,但我们可以想象使用任何其他服务器)

在规范中,我重用了
HTTP\u端口
常量来构建URL:

browser.goto "http://localhost:#{HTTP_PORT}/"

我也需要同样的东西。希望你能得到答案。刚刚发布了一个类似问题的回复。