首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在rspec中运行ruby debug?

在rspec中运行ruby debug?
EN

Stack Overflow用户
提问于 2011-03-27 09:28:55
回答 4查看 67K关注 0票数 80

我正在尝试让Ruby调试器在我的一个规范中运行:

describe User do
  it "should be valid" do
    debugger
    User.new.should be_valid
  end
end

但是,当我运行rspec时,我得到:

debugger statement ignored, use -d or --debug option to enable debugging

我尝试过以下几种方法:

rake spec --debug
rake spec --debug  --trace
rake spec:models --debug
bundle exec rspec --debug
bundle exec rspec --debug spec/models/
bundle exec rspec --d spec/models/
bundle exec "rspec --debug" spec/models/
bundle exec rspec --debugger spec/models/
bundle exec --debugger rspec spec/models/
bundle --debugger exec rspec spec/models/
bundle --debugger exec rspec spec/models/
bundle exec --debugger rspec spec/models/
bundle exec rspec --debugger spec/models/

关于如何以正确的方式执行rspec有什么想法吗?我使用的是Rails3.0.5,ruby1.9.2,RSpec 2.5.1,ruby-debug19。

谢谢,贾斯汀。

EN

回答 4

Stack Overflow用户

发布于 2011-03-27 13:05:00

您可以在项目的根目录中创建一个.rspec配置文件,并包含以下行:

--debug
票数 27
EN

Stack Overflow用户

发布于 2013-09-04 20:24:02

对于Ruby2.0,我使用的是byebug:https://github.com/deivid-rodriguez/byebug

gem 'byebug'

代码:

# spec/models/user_spec.rb
require 'spec_helper'
require 'byebug'

describe User do
  it "should be valid" do
    byebug
    User.new.should be_valid
  end
end
票数 19
EN

Stack Overflow用户

发布于 2012-04-18 05:38:37

我发现在rSpec中调试的最好方法是在'spec_helper.rb‘文件中添加以下代码

def logger
  Rails.logger
end

然后,您可以访问rSpec文件中的所有记录器方法,并合并标记日志之类的内容。当然,这是针对Rails 3和更高版本的。如果您在Rails 3之前有任何内容,请添加以下内容:

def logger
  RAILS_DEFAULT_LOGGER
end

一旦准备好了日志语句,就可以输入

tail -f log/test.log

在终端shell中,以便在测试运行时监视日志记录语句。

当然,在实际的rspec测试中,您需要输入如下内容

logger.debug "#{1.class}"  # => Fixnum

如果您想从测试日志的其余部分中过滤调试语句,只需在调试语句前面添加一个随机字符串,并将tail命令的输出通过管道传递给grep。

示例:

logger.debug "random_string #{1.class}"   # => Fixnum

tail -f log/test.log | grep random_string

更新

我已经改变了我对此的看法。您应该安装pry、pry-doc和pry-debug、pry-debugger和pry-rails。然后在您的代码中使用binding.pry打开一个统治世界的交互式调试器控制台!

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5446594

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档