Ruby rspec测试期间的撬动会话在任何输入端结束

Ruby rspec测试期间的撬动会话在任何输入端结束,ruby,rspec,Ruby,Rspec,我试图使用binding.pry来暂停rspec测试,以了解它失败的原因。以下是一个简化版本: def copy_db binding.pry puts 'hello world' end binding.pry暂停执行,但会话中的任何输入都会导致其结束。你知道为什么会这样吗?这不是rails项目。我不确定前面的答案是否足够,但除了binding.pry之外,您还可以尝试使用byebug gem 在您的文件中添加: gem "byebug" 在终端(项目目录的根目录)中运行: 在代码

我试图使用
binding.pry来暂停rspec测试,以了解它失败的原因。以下是一个简化版本:

def copy_db
  binding.pry
  puts 'hello world'
end

binding.pry
暂停执行,但会话中的任何输入都会导致其结束。你知道为什么会这样吗?这不是rails项目。

我不确定前面的答案是否足够,但除了binding.pry之外,您还可以尝试使用byebug gem

在您的文件中添加:

gem "byebug"
在终端(项目目录的根目录)中运行:

在代码顶部需要“byebug”,并在需要设置断点的位置插入“调试器”:

require 'byebug'
def copy_db
    debugger
    puts 'hello world'
end
它将暂停rspec并进入byebug调试器,它允许您在逐行执行时显示各种变量的值

[1, 4] in path/to/your/file.rb
     1:  def copy_db
     2:      debugger
=>   3:      puts 'hello world'
     4:  end
(byebug)_

您的文件中是否有
require pry
?有时,
pry
会损坏我的终端,它的行为方式与您的体验相同,当我重新加载终端时,它会正常工作。我在MacOSX上经常遇到这种情况。
[1, 4] in path/to/your/file.rb
     1:  def copy_db
     2:      debugger
=>   3:      puts 'hello world'
     4:  end
(byebug)_