【问题标题】:Rails: run code ignoring binding.pryRails:运行代码忽略 binding.pry
【发布时间】:2023-03-17 11:02:01
【问题描述】:

我经常使用 pry-byebug gem 在我的代码中放置断点

binding.pry 

但是,在调试过程中(比如在进行轻微更改之后),我经常希望在没有任何断点的情况下运行整个代码/规范。

有没有办法做到这一点?我正在寻找类似的东西

bundle exec rspec '--ignore-pry' spec/controller/my_controller.rb

【问题讨论】:

  • 我不确定 pry 选项,但我可以想到一个简单的方法,使用 git stash 轻松完成此操作,以防您使用版本控制。 git stash 将删除所有这些 binding.pry 语句,然后您可以进行更改并执行代码。如果您再次需要这些断点,只需使用git stash apply
  • git stash 还会将我的代码更改与 stash binding.pry 语句一起存储在当前分支中。
  • 我建议你遵循类似的顺序:(1) 所有代码提交 (2) 添加 binding.pry 到调试 (3) git stash (4) 更改代码 (5) git stash apply in如果您希望返回 binding.pry 语句。这只是一种解决方法。认为如果没有选项可以满足您的要求,它可能会有所帮助。您始终可以在本地提交(bindin.pry 语句)、还原,然后重置为原点,以便在调试问题时利用 git。 #just说
  • 我也觉得这很有帮助。似乎是一个很好的开源贡献机会。
  • 你也可以在第一个断点被命中时使用disable-pry来忽略所有未来的断点。

标签: ruby-on-rails debugging binding breakpoints pry


【解决方案1】:

TL;DR 使用 DISABLE_PRY=1 环境变量

我有完全相同的问题,我发现了这个https://github.com/pry/pry/blob/master/spec/pry_spec.rb#L29

基本上你只是跑

DISABLE_PRY=1 bundle exec rspec spec/controller/my_controller.rb

你很好。在这批撬模块上进行了测试

$ cat Gemfile.lock | grep pry    
      pry (>= 0.9.12)
    pry (0.10.4)
    pry-byebug (3.4.1)
      pry (~> 0.10)
    pry-doc (0.10.0)
      pry (~> 0.9)
    pry-rails (0.3.4)
      pry (>= 0.9.10)
    pry-rescue (1.4.4)
      pry
    pry-stack_explorer (0.4.9.2)
      pry (>= 0.9.11)

【讨论】:

猜你喜欢
  • 2012-02-26
  • 1970-01-01
  • 2018-01-30
  • 2015-08-19
  • 2023-03-04
  • 1970-01-01
  • 2013-01-28
  • 2019-09-28
  • 1970-01-01
相关资源
最近更新 更多