代码之家  ›  专栏  ›  技术社区  ›  stoebelj

rspec测试期间的pry会话在任何输入上结束

  •  0
  • stoebelj  · 技术社区  · 7 年前

    我试图暂停rspec测试 binding.pry 去理解为什么失败。以下是一个简化版本:

    def copy_db
      binding.pry
      puts 'hello world'
    end
    

    这个 捆绑撬 暂停执行,但会话中的任何输入都会导致其结束。你知道为什么吗?这不是一个rails项目。

    1 回复  |  直到 7 年前
        1
  •  0
  •   kiode    7 年前

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

    在gemfile中添加:

    gem "byebug"
    

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

    $ bundle install
    

    在代码顶部需要“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)_
    
    推荐文章