title: Pry doesn't work when launched from method invoked by RSpec test
body: <p>I'm trying to use Pry with RSpec.
  Goal is to be able to drop binding in method and debug it.</p>
  
  <p>Here is what I have.</p>
  
  <p>lib/play.rb</p>
  
  <pre><code>class Play
    def self.hello
      print 'Hello world!'
      require 'pry'; binding.pry
    end
  end
  </code></pre>
  
  <p>spec/play_spec.rb</p>
  
  <pre><code>require_relative '../lib/play'
  
  describe Play do
    it 'Play#hello should print message' do
      expect {Play.hello}.to output('Hello world!').to_stdout
      #require 'pry'; binding.pry
    end
  end
  </code></pre>
  
  <p>If I uncomment binding in spec file and run
      rspec
  I'm getting into Pry which behaves as expected</p>
  
  <pre><code>Frame number: 0/23
  
  From: /Users/iiezhachenko/Documents/Repos/bdd-ruby-      playground/spec/play_spec.rb @ line 6 :
  
      1: require_relative '../lib/play'
      2:
      3: describe Play do
      4:   it 'Play#hello should print message' do
      5:     expect {Play.hello}.to output('Hello world!').to_stdout
   =&gt; 6:     require 'pry'; binding.pry
      7:   end
      8: end
  
  [1] pry(#&lt;RSpec::ExampleGroups::Play&gt;)&gt; ls
  RSpec::Core::MemoizedHelpers#methods: is_expected  should  should_not  subject
  RSpec::Core::Pending#methods: pending  skip
  RSpec::Mocks::ArgumentMatchers#methods:
  </code></pre>
  
  <p>If I comment out binding.pry in spec fill, put it in method which is tested and invoke "rspec" again. I'm getting into completely messed Pry.</p>
  
  <pre><code>[1] pry(Play)&gt; ls
  [2] pry(Play)&gt; fghjk
  [3] pry(Play)&gt; kweutyalfh 
  [4] pry(Play)&gt; exit
  F
  
  Failures:
  
    1) Play Play#hello should print message
       Failure/Error: expect {Play.hello}.to output('Hello world!').to_stdout
  
         expected block to output "Hello world!" to stdout, but output "Hello world!\n\e[1mFrame number:\e[0m 0/32\n\n\e[1mFrom:\e[0m /Users/iiezhachenko/Documents/Repos/bdd-ruby-playground/lib/play.rb @ line 4 Play.hello:\n\n    \e[1;34m2\e[0m: \e[32mdef\e[0m \e[1;36mself\e[0m.\e[1;34mhello\e[0m\n    \e[1;34m3\e[0m:   print \e[31m\e[1;31m'\e[0m\e[31mHello world!\e[1;31m'\e[0m\e[31m\e[0m\n =&gt; \e[1;34m4\e[0m:   require \e[31m\e[1;31m'\e[0m\e[31mpry\e[1;31m'\e[0m\e[31m\e[0m; binding.pry\n    \e[1;34m5\e[0m: \e[32mend\e[0m\n\n\e[0G\e[1m\e[1;34mPlay.methods\e[0m\e[0m: hello\n\e[1m\e[1;34mlocals\e[0m\e[0m: _  __  _dir_  _ex_  _file_  _in_  _out_  _pry_\nNameError: undefined local variable or method `fghjk' for Play:Class\nfrom (pry):1:in `hello'\nNameError: undefined local variable or method `kweutyalfh' for Play:Class\nfrom (pry):2:in `hello'\n"
         Diff:
         @@ -1,2 +1,17 @@
          Hello world!
         +Frame number: 0/32
         +
         +From: /Users/iiezhachenko/Documents/Repos/bdd-ruby-playground/lib/play.rb @ line 4 Play.hello:
         +
         +    2: def self.hello
         +    3:   print 'Hello world!'
         + =&gt; 4:   require 'pry'; binding.pry
         +    5: end
         +
  Play.methods: hello
         +locals: _  __  _dir_  _ex_  _file_  _in_  _out_  _pry_
         +NameError: undefined local variable or method `fghjk' for Play:Class
         +from (pry):1:in `hello'
         +NameError: undefined local variable or method `kweutyalfh' for Play:Class
         +from (pry):2:in `hello'
       # ./spec/play_spec.rb:5:in `block (2 levels) in &lt;top (required)&gt;'
  </code></pre>
  
  <p>Anyone faced such issue?</p>