Ruby on rails 更改Rails中测试的主机名

Ruby on rails 更改Rails中测试的主机名,ruby-on-rails,ruby,testing,hostname,Ruby On Rails,Ruby,Testing,Hostname,显然,在Rails中运行测试时,主机名是“www.example.com”。如果我在测试中运行root\u url,它将返回“http://www.example.com/“ 由于我正在开发一个需要其他主机名的应用程序,是否有办法将默认主机名更改为其他主机名,这样我就不必每次在测试中生成URL时都指定它 谢谢。是的,我认为在中,您可以在config/environments/test.rb文件中执行类似操作: config.action_controller.asset_host = "127.

显然,在Rails中运行测试时,主机名是“www.example.com”。如果我在测试中运行root\u url,它将返回“http://www.example.com/“

由于我正在开发一个需要其他主机名的应用程序,是否有办法将默认主机名更改为其他主机名,这样我就不必每次在测试中生成URL时都指定它


谢谢。

是的,我认为在中,您可以在config/environments/test.rb文件中执行类似操作:

config.action_controller.asset_host = "127.0.0.1"

ps这是目前尚未测试的。我知道我做过类似的事情,但有一次,但代码在我的工作电脑上。如果它不起作用,我明天会检查它。

好吧,这取决于你如何测试。例如,如果您在测试套件中使用Capybara,您可以指定
default\u host

路径/url帮助程序从请求对象获取主机名。因此,在测试中,您可以执行以下操作:

request.host = "another-domain.com"

答案似乎是否定的,在测试代码中,调用url帮助程序时必须指定主机。

这仅适用于请求,不会更改在测试中调用root\u url的结果。