ruby-on-rails – 如果rspec测试失败,请启动ruby调试器

前端之家收集整理的这篇文章主要介绍了ruby-on-rails – 如果rspec测试失败,请启动ruby调试器前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
通常,当测试失败时,我花费了很多时间来弄清楚导致失败的原因.如果RSpec可以在测试失败时启动一个Ruby调试器,那么可以立即检查本地变量来深入了解原因.

我正在使用的工作现在看起来像这样:

# withing some test
debugger unless some_variable.nil?
expect(some_variable).to be_nil

然而,这种方法是麻烦的,因为我先等待测试失败,然后添加调试器行,解决问题,然后必须删除调试器行,而我希望它的工作更像是gdb,它有能力踢当一个异常被击中,而不需要用调试器语句胡椒你的代码库.

编辑:我试过普利茅斯它对我来说还不够可靠.发展历史似乎也表明它不是很好的支持宝石,所以我宁愿不依赖它.

更新:我试过撬动抢救,发现它很整洁.但是,我使用了zeus [https://github.com/burke/zeus],并且想知道是否有办法使其与撬动协同工作

解决方法

使用 pry-rescue,这是普利茅斯的精神继承人:

从自述:

如果您使用RSPec或respec,则可以使用rescue rspec或rescue respec在每次测试失败时打开撬动会话:

$rescue rspec
From: /home/conrad/0/ruby/pry-rescue/examples/example_spec.rb @ line 9 :

     6:
     7: describe "Float" do
     8:   it "should be able to add" do
 =>  9:     (0.1 + 0.2).should == 0.3
    10:   end
    11: end

RSpec::Expectations::ExpectationNotMetError: expected: 0.3
     got: 0.30000000000000004 (using ==)
[1] pry(main)>

猜你在找的Ruby相关文章