怎么在RSpec中运行ruby调试?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (20)

我试图让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的任何想法?我在Rails 3.0.5,Ruby 1.9.2,RSpec 2.5.1,ruby-debug19都试过。

提问于
用户回答回答于

通过包含require 'ruby-debug'在规范顶部而获得想要的内容:

# spec/models/user_spec.rb
require 'spec_helper'
require 'ruby-debug'

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

然后运行rake specrspec正常

注意:我现在更喜欢Ruby 2.0+和pry。这几乎是相同的过程:

require 'spec_helper'
require 'pry-debugger'

describe User do
  it "should be valid" do
    binding.pry
    expect(User.new).to be_valid
  end
end

另外,我通常在我的spec_helper文件中提出这样的要求,以便pry-debugger可用于我的所有规格。

用户回答回答于

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

--debug

扫码关注云+社区