我一直在尝试使用 Rails 分析工具。我正在使用一个非常简单的示例,该示例取自http://guides.rubyonrails.org/performance_testing.html上的文档,如下所示
require 'test_helper'
require 'rails/performance_test_help'
# Profiling results for each test method are written to tmp/performance.
class BrowsingTest < ActionDispatch::PerformanceTest
def test_homepage
get '/'
end
end
然后我使用
rake test:profile
但它因以下错误而崩溃
Error during failsafe response: undefined method `controller_name' for nil:NilClass
我怀疑问题在于该应用程序服务于多个域,因此仅使用 get '/' 不足以将 url 解析回控制器/操作 - 它还需要一个主机。然而,指定主机的常用方法(@host、@request.host、default_url_options[:host])要么不起作用,要么导致另一个错误(例如,@request 为 nil)。
我也试过输入完整的网址。我在测试环境中将不同的主机定义为常量,所以这看起来像
get "http://#{HOST_1}/"
在这种情况下,rake 任务成功完成,但命令行上没有显示分析信息,也没有生成文件。
我并没有真正使用 Rails 中的分析工具,所以我希望我遗漏了一些明显的东西。任何指针将不胜感激。
干杯