ruby-on-rails - 记录 Rails 应用程序中的所有方法调用

标签 ruby-on-rails ruby ruby-on-rails-3 rspec

有没有一种简单的方法可以记录 Rails 应用中的所有方法调用?

我对此的主要用途是测试(和调试测试)。我希望拥有比堆栈跟踪提供的更多的历史记录(例如,在使用“-b”选项运行 rspec 时)。

最佳答案

这很容易做到。只需将 5 行代码添加到您的脚本/服务器中:

#!/usr/bin/env ruby
set_trace_func proc {
  |event, file, line, id, binding, classname| 
  if event == "call" or event == "return" 
    printf "%8s %s:%-2d %10s %8s\n", event, file, line, id, classname
  end
}

require File.expand_path('../../config/boot',  __FILE__)
require 'commands/server'

它在 http://phrogz.net/ProgrammingRuby/ospace.html#tracingyourprogramsexecution 中有描述

您的应用程序将变得非常慢,并且您可能会得到比您想要的更多的输出。您可以轻松地在文件/类/函数名称上添加更多条件,以避免打印不需要的内容。

关于ruby-on-rails - 记录 Rails 应用程序中的所有方法调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7050896/

相关文章:

ruby-on-rails - Ruby on Rails 3 教程 : Entering commands in console issue

ruby-on-rails - 有没有更多的 ruby 方式来做到这一点

ruby-on-rails - 需要在 Builder 函数名称中使用连字符

ruby - Ruby 中的 Set 是否始终保留插入顺序?

ruby-on-rails - 从 pry 动切换到 IRB

ruby-on-rails - 如何从 rails3 Controller 中的复选框获取参数

ruby-on-rails-3 - 使用 RSpec 将参数传递给 Rails Controller 操作中的模拟模型方法的问题

mysql - rails : Insert a lot of HTML code through migration to the database

ruby-on-rails - 性能问题 : use "link_to" or "a"?

ruby-on-rails - rails : Displaying published post by all and unpublished post of current_user