1

我在 rails 和 emberjs 应用程序上运行测试,并在我的测试中设置了 :js => true 。我可以在规范中删除 binding.pry 并且它会弹出打开 REPL 就好了,但是如果我在应用程序中删除 binding.pry,REPL 将显示在控制台中,但规范继续。我相信,这是因为使用 poltergeist 作为驱动程序,capybara 在一个线程中运行规范,而在另一个线程中运行应用程序。有没有办法进行设置,以便我可以在应用程序代码中使用 binding.pry 打开 REPL 并暂停应用程序和规范?

这是一个运行良好的 binding.pry 语句的示例,并且被遗忘了:

作品:

employee_signs_in_spec.rb

require 'spec_helper'
feature 'Visitor signs in', :js => true do
  scenario 'Success' do
    visit '/sign_in'
    sign_in_as(FactoryGirl.create(:employee, confirmed_at: Time.now))
    binding.pry
    page.should have_content('Example Content')
  end
end

被抛在后面:

session_controller.rb

class SessionsController < Devise::SessionsController
  include Devise::Controllers::Helpers

  respond_to :json

  def create
    binding.pry
    # code for create action
  end
end
4

1 回答 1

0

在分叉的进程中使用 pry 不起作用。

您将需要使用PryRemote连接到另一个远程进程。

于 2013-11-08T17:21:23.360 回答