首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >设计: UncaughtThrowError -裸奔:监狱长

设计: UncaughtThrowError -裸奔:监狱长
EN

Stack Overflow用户
提问于 2015-07-09 10:38:59
回答 2查看 1.5K关注 0票数 2

当运行我的所有规范时,rspec会冻结,并且在日志文件中存在以下内容:

代码语言:javascript
复制
UncaughtThrowError - uncaught throw :warden:
  devise (3.5.1) lib/devise/hooks/activatable.rb:8:in `block in <top (required)>'
  warden (1.2.3) lib/warden/hooks.rb:14:in `block in _run_callbacks'
  warden (1.2.3) lib/warden/hooks.rb:9:in `_run_callbacks'
  warden (1.2.3) lib/warden/manager.rb:53:in `_run_callbacks'
  warden (1.2.3) lib/warden/proxy.rb:179:in `set_user'
  warden (1.2.3) lib/warden/test/helpers.rb:20:in `block in login_as'
  warden (1.2.3) lib/warden.rb:38:in `block in test_mode!'
  warden (1.2.3) lib/warden/hooks.rb:14:in `block in _run_callbacks'
  warden (1.2.3) lib/warden/hooks.rb:9:in `_run_callbacks'
  warden (1.2.3) lib/warden/manager.rb:53:in `_run_callbacks'
  warden (1.2.3) lib/warden/proxy.rb:31:in `initialize'
  warden (1.2.3) lib/warden/manager.rb:33:in `call'
  rack (1.6.4) lib/rack/etag.rb:24:in `call'
  rack (1.6.4) lib/rack/conditionalget.rb:25:in `call'
  rack (1.6.4) lib/rack/head.rb:13:in `call'
  actionpack (4.2.3) lib/action_dispatch/middleware/params_parser.rb:27:in `call'
  actionpack (4.2.3) lib/action_dispatch/middleware/flash.rb:260:in `call'
  rack (1.6.4) lib/rack/session/abstract/id.rb:225:in `context'
  rack (1.6.4) lib/rack/session/abstract/id.rb:220:in `call'
  actionpack (4.2.3) lib/action_dispatch/middleware/cookies.rb:560:in `call'
  activerecord (4.2.3) lib/active_record/query_cache.rb:36:in `call'
  activerecord (4.2.3) lib/active_record/connection_adapters/abstract/connection_pool.rb:653:in `call'
  actionpack (4.2.3) lib/action_dispatch/middleware/callbacks.rb:29:in `block in call'
  activesupport (4.2.3) lib/active_support/callbacks.rb:84:in `run_callbacks'
  actionpack (4.2.3) lib/action_dispatch/middleware/callbacks.rb:27:in `call'
  actionpack (4.2.3) lib/action_dispatch/middleware/remote_ip.rb:78:in `call'
  airbrake (4.3.0) lib/airbrake/rails/middleware.rb:13:in `call'
  better_errors (2.1.1) lib/better_errors/middleware.rb:84:in `protected_app_call'
  better_errors (2.1.1) lib/better_errors/middleware.rb:79:in `better_errors_call'
  better_errors (2.1.1) lib/better_errors/middleware.rb:57:in `call'
  actionpack (4.2.3) lib/action_dispatch/middleware/debug_exceptions.rb:17:in `call'
  actionpack (4.2.3) lib/action_dispatch/middleware/show_exceptions.rb:30:in `call'
  railties (4.2.3) lib/rails/rack/logger.rb:38:in `call_app'
  railties (4.2.3) lib/rails/rack/logger.rb:20:in `block in call'
  activesupport (4.2.3) lib/active_support/tagged_logging.rb:68:in `block in tagged'
  activesupport (4.2.3) lib/active_support/tagged_logging.rb:26:in `tagged'
  activesupport (4.2.3) lib/active_support/tagged_logging.rb:68:in `tagged'
  railties (4.2.3) lib/rails/rack/logger.rb:20:in `call'
  request_store (1.1.0) lib/request_store/middleware.rb:8:in `call'
  actionpack (4.2.3) lib/action_dispatch/middleware/request_id.rb:21:in `call'
  rack (1.6.4) lib/rack/methodoverride.rb:22:in `call'
  rack (1.6.4) lib/rack/runtime.rb:18:in `call'
  activesupport (4.2.3) lib/active_support/cache/strategy/local_cache_middleware.rb:28:in `call'
  rack (1.6.4) lib/rack/lock.rb:17:in `call'
  actionpack (4.2.3) lib/action_dispatch/middleware/static.rb:116:in `call'
  rack (1.6.4) lib/rack/sendfile.rb:113:in `call'
  airbrake (4.3.0) lib/airbrake/user_informer.rb:16:in `_call'
  airbrake (4.3.0) lib/airbrake/user_informer.rb:12:in `call'
  railties (4.2.3) lib/rails/engine.rb:518:in `call'
  railties (4.2.3) lib/rails/application.rb:165:in `call'
  rack (1.6.4) lib/rack/urlmap.rb:66:in `block in call'
  rack (1.6.4) lib/rack/urlmap.rb:50:in `call'
  capybara (2.4.4) lib/capybara/server.rb:19:in `call'
  rack (1.6.4) lib/rack/handler/webrick.rb:88:in `service'
  /Users/karmet/.rbenv/versions/2.2.0/lib/ruby/2.2.0/webrick/httpserver.rb:138:in `service'
  /Users/karmet/.rbenv/versions/2.2.0/lib/ruby/2.2.0/webrick/httpserver.rb:94:in `run'
  /Users/karmet/.rbenv/versions/2.2.0/lib/ruby/2.2.0/webrick/server.rb:294:in `block in start_thread'

Started POST "/__better_errors/6cbad9a74efd7260/variables" for 127.0.0.1 at 2015-07-09 12:25:33 +0200
   (1.8ms)  ALTER TABLE "schema_migrations" DISABLE TRIGGER ALL;ALTER TABLE "shifts" DISABLE TRIGGER ALL;ALTER TABLE "templates" DISABLE TRIGGER ALL;ALTER TABLE "roles" DISABLE TRIGGER ALL;ALTER TABLE "locations" DISABLE TRIGGER ALL;ALTER TABLE "location_assignments" DISABLE TRIGGER ALL;ALTER TABLE "instructions" DISABLE TRIGGER ALL;ALTER TABLE "comfy_cms_pages" DISABLE TRIGGER ALL;ALTER TABLE "news" DISABLE TRIGGER ALL;ALTER TABLE "comfy_cms_sites" DISABLE TRIGGER ALL;ALTER TABLE "absences" DISABLE TRIGGER ALL;ALTER TABLE "comfy_cms_layouts" DISABLE TRIGGER ALL;ALTER TABLE "comfy_cms_snippets" DISABLE TRIGGER ALL;ALTER TABLE "sms_dispatches" DISABLE TRIGGER ALL;ALTER TABLE "sms" DISABLE TRIGGER ALL;ALTER TABLE "comfy_cms_blocks" DISABLE TRIGGER ALL;ALTER TABLE "profiles" DISABLE TRIGGER ALL;ALTER TABLE "shift_requests" DISABLE TRIGGER ALL;ALTER TABLE "emails" DISABLE TRIGGER ALL;ALTER TABLE "email_recipients" DISABLE TRIGGER ALL;ALTER TABLE "documents" DISABLE TRIGGER ALL;ALTER TABLE "comfy_cms_files" DISABLE TRIGGER ALL;ALTER TABLE "comfy_cms_categorizations" DISABLE TRIGGER ALL;ALTER TABLE "users" DISABLE TRIGGER ALL;ALTER TABLE "template_shifts" DISABLE TRIGGER ALL;ALTER TABLE "comfy_cms_categories" DISABLE TRIGGER ALL;ALTER TABLE "comfy_cms_revisions" DISABLE TRIGGER ALL;ALTER TABLE "booked_shifts" DISABLE TRIGGER ALL
   (144.6ms)  TRUNCATE TABLE "public"."shifts", "public"."templates", "public"."location_assignments", "public"."comfy_cms_pages", "public"."news", "public"."comfy_cms_sites", "public"."absences", "public"."sms", "public"."comfy_cms_layouts", "public"."comfy_cms_snippets", "public"."comfy_cms_blocks", "public"."sms_dispatches", "public"."profiles", "public"."shift_requests", "public"."emails", "public"."email_recipients", "public"."documents", "public"."comfy_cms_files", "public"."comfy_cms_categorizations", "public"."users", "public"."template_shifts", "public"."comfy_cms_categories", "public"."comfy_cms_revisions", "public"."booked_shifts" RESTART IDENTITY CASCADE;
   (1.0ms)  ALTER TABLE "schema_migrations" ENABLE TRIGGER ALL;ALTER TABLE "shifts" ENABLE TRIGGER ALL;ALTER TABLE "templates" ENABLE TRIGGER ALL;ALTER TABLE "roles" ENABLE TRIGGER ALL;ALTER TABLE "locations" ENABLE TRIGGER ALL;ALTER TABLE "location_assignments" ENABLE TRIGGER ALL;ALTER TABLE "instructions" ENABLE TRIGGER ALL;ALTER TABLE "comfy_cms_pages" ENABLE TRIGGER ALL;ALTER TABLE "news" ENABLE TRIGGER ALL;ALTER TABLE "comfy_cms_sites" ENABLE TRIGGER ALL;ALTER TABLE "absences" ENABLE TRIGGER ALL;ALTER TABLE "comfy_cms_layouts" ENABLE TRIGGER ALL;ALTER TABLE "comfy_cms_snippets" ENABLE TRIGGER ALL;ALTER TABLE "sms_dispatches" ENABLE TRIGGER ALL;ALTER TABLE "sms" ENABLE TRIGGER ALL;ALTER TABLE "comfy_cms_blocks" ENABLE TRIGGER ALL;ALTER TABLE "profiles" ENABLE TRIGGER ALL;ALTER TABLE "shift_requests" ENABLE TRIGGER ALL;ALTER TABLE "emails" ENABLE TRIGGER ALL;ALTER TABLE "email_recipients" ENABLE TRIGGER ALL;ALTER TABLE "documents" ENABLE TRIGGER ALL;ALTER TABLE "comfy_cms_files" ENABLE TRIGGER ALL;ALTER TABLE "comfy_cms_categorizations" ENABLE TRIGGER ALL;ALTER TABLE "users" ENABLE TRIGGER ALL;ALTER TABLE "template_shifts" ENABLE TRIGGER ALL;ALTER TABLE "comfy_cms_categories" ENABLE TRIGGER ALL;ALTER TABLE "comfy_cms_revisions" ENABLE TRIGGER ALL;ALTER TABLE "booked_shifts" ENABLE TRIGGER ALL
   (0.5ms)  BEGIN

在我的特性规范中,我包括一个名为FeatureHelper的模块,其内容如下:

代码语言:javascript
复制
module FeatureHelper
  def self.included(base)
    base.class_eval do
      include Warden::Test::Helpers

      before :each do
        Warden.test_mode!
        login_as user
      end

      after :each do
        Warden.test_reset!
      end
    end
  end
end

在特性规范中,我使用let(:user) { create(:user) }设置了用户。当我单独运行所有规格时,一切都很好。只有当我使用bundle exec rspec运行所有规范时,我才会遇到这个问题。

有什么想法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-07-09 14:09:54

似乎是database_cleaner的一个bug,目前固定在master分支上。

将此添加到我的Gemfile中:

代码语言:javascript
复制
gem 'database_cleaner', github: 'DatabaseCleaner/database_cleaner', ref: 'b8edac6bd04fb89a267201fa8d47066d511fd9de'

现在一切都恢复正常了。

票数 2
EN

Stack Overflow用户

发布于 2017-07-11 08:08:58

实际上,我的解决办法是在user.confirmed_at = Time.now之前设置sign_in。原因是如果还没有确认confirmable资源,则devise中的可激活钩子会抛出错误。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31315012

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档