We do test against a simple sample application without ActiveRecord to catch related errors. Our current checks around when / if to load ActiveRecord related code is to check if ActiveRecord is already defined in the system. This can happen for several reasons:
- You are still loading the ActiveRecord railtie - You are referencing ActiveRecord in an initializer which is loading it - Some other code in the code base is loading the ActiveRecord module (simply referencing it will cause Rails to autoload it) - Another gem in your system is loading ActiveRecord The last bullet point above is the most common cause. I would start by checking your Gemfile for any gems which may list ActiveRecord as a gem dependency. This isn’t guaranteed to tell you the offending gem. It is likely Rails may be a dependency, or another related gem. Additionally, the gem may not even list AR as a dependency, but will reference ActiveRecord in the code. I would also look at any other gems which may have changed during the upgrade and slowly start to comment them out to see when the issue does / does not occur. While it is possible there is an issue with rspec-rails somewhere, my initial review didn’t turn up anything obvious. I’m currently leaning towards another gem in your system loading it. On Sun, Mar 8, 2015 at 9:25 PM, 顾明 <[email protected]> wrote: > Al, thanks for your reply. > But my app doesn't use database at all. > When I run a test, why it will run the example? > Form the error trace: > # /Users/user_name/.rbenv/versions/2.1.5/lib/ruby/gems/ > 2.1.0/gems/rspec-core-3.2.0/lib/rspec/core/example.rb:343:in > `with_around_example_hooks' > # /Users/user_name/.rbenv/versions/2.1.5/lib/ruby/gems/ > 2.1.0/gems/rspec-core-3.2.0/lib/rspec/core/example.rb:385:in > `with_around_and_singleton_context_hooks' > # /Users/user_name/.rbenv/versions/2.1.5/lib/ruby/gems/ > 2.1.0/gems/rspec-core-3.2.0/lib/rspec/core/example.rb:174:in `run' > # /Users/user_name/.rbenv/versions/2.1.5/lib/ruby/gems/ > 2.1.0/gems/rspec-core-3.2.0/lib/rspec/core/example_group.rb:548:in `block > in run_examples' > # /Users/user_name/.rbenv/versions/2.1.5/lib/ruby/gems/ > 2.1.0/gems/rspec-core-3.2.0/lib/rspec/core/example_group.rb:544:in `map' > # /Users/user_name/.rbenv/versions/2.1.5/lib/ruby/gems/ > 2.1.0/gems/rspec-core-3.2.0/lib/rspec/core/example_group.rb:544:in > `run_examples' > > 在 2015年3月7日星期六 UTC+8上午3:54:12,Al写道: > >> http://stackoverflow.com/questions/7871233/ruby- >> activerecordconnectionnotestablished >> >> I googled "ActiveRecord::ConnectionNotEstablished" and found out that it >> was a database issue. Found this: http://stackoverflow.com/ >> questions/7871233/ruby-activerecordconnectionnotestablished >> >> On Thursday, March 5, 2015 at 10:06:57 PM UTC-5, 顾明 wrote: >>> >>> The problem didn't happened before, I do not knew if it caused by >>> something upgrades. >>> >>> Now all the tests have caused this problem, such as a simple: >>> >>> require 'spec_helper' >>> describe 'some_thing' do >>> it "returns the product price" do >>> #expect(helper.product_price).to eq(100) >>> end >>> end >>> >>> Error list belows: >>> Failure/Error: Unable to find matching line from backtrace >>> ActiveRecord::ConnectionNotEstablished: >>> ActiveRecord::ConnectionNotEstablished >>> # /Users/user_name/.rbenv/versions/2.1.5/lib/ruby/gems/ >>> 2.1.0/gems/activerecord-4.1.8/lib/active_record/connection_ >>> adapters/abstract/connection_pool.rb:541:in `retrieve_connection' >>> # /Users/user_name/.rbenv/versions/2.1.5/lib/ruby/gems/ >>> 2.1.0/gems/activerecord-4.1.8/lib/active_record/connection_handling.rb:113:in >>> `retrieve_connection' >>> # /Users/user_name/.rbenv/versions/2.1.5/lib/ruby/gems/ >>> 2.1.0/gems/activerecord-4.1.8/lib/active_record/connection_handling.rb:87:in >>> `connection' >>> # /Users/user_name/.rbenv/versions/2.1.5/lib/ruby/gems/ >>> 2.1.0/gems/activerecord-4.1.8/lib/active_record/fixtures.rb:499:in >>> `create_fixtures' >>> # /Users/user_name/.rbenv/versions/2.1.5/lib/ruby/gems/ >>> 2.1.0/gems/activerecord-4.1.8/lib/active_record/fixtures.rb:984:in >>> `load_fixtures' >>> # /Users/user_name/.rbenv/versions/2.1.5/lib/ruby/gems/ >>> 2.1.0/gems/activerecord-4.1.8/lib/active_record/fixtures.rb:957:in >>> `setup_fixtures' >>> # /Users/user_name/.rbenv/versions/2.1.5/lib/ruby/gems/ >>> 2.1.0/gems/activerecord-4.1.8/lib/active_record/fixtures.rb:806:in >>> `before_setup' >>> # /Users/user_name/.rbenv/versions/2.1.5/lib/ruby/gems/ >>> 2.1.0/gems/rspec-rails-3.2.0/lib/rspec/rails/adapters.rb:110:in `block >>> (2 levels) in <module:MinitestLifecycleAdapter>' >>> # /Users/user_name/.rbenv/versions/2.1.5/lib/ruby/gems/ >>> 2.1.0/gems/rspec-core-3.2.0/lib/rspec/core/example.rb:333:in >>> `instance_exec' >>> # /Users/user_name/.rbenv/versions/2.1.5/lib/ruby/gems/ >>> 2.1.0/gems/rspec-core-3.2.0/lib/rspec/core/example.rb:333:in >>> `instance_exec' >>> # /Users/user_name/.rbenv/versions/2.1.5/lib/ruby/gems/ >>> 2.1.0/gems/rspec-core-3.2.0/lib/rspec/core/hooks.rb:387:in >>> `execute_with' >>> # /Users/user_name/.rbenv/versions/2.1.5/lib/ruby/gems/ >>> 2.1.0/gems/rspec-core-3.2.0/lib/rspec/core/hooks.rb:616:in `block (2 >>> levels) in run_around_example_hooks_for' >>> # /Users/user_name/.rbenv/versions/2.1.5/lib/ruby/gems/ >>> 2.1.0/gems/rspec-core-3.2.0/lib/rspec/core/example.rb:247:in `call' >>> # /Users/user_name/.rbenv/versions/2.1.5/lib/ruby/gems/ >>> 2.1.0/gems/rspec-core-3.2.0/lib/rspec/core/example.rb:247:in `call' >>> # /Users/user_name/.rbenv/versions/2.1.5/lib/ruby/gems/ >>> 2.1.0/gems/rspec-core-3.2.0/lib/rspec/core/hooks.rb:617:in >>> `run_around_example_hooks_for' >>> # /Users/user_name/.rbenv/versions/2.1.5/lib/ruby/gems/ >>> 2.1.0/gems/rspec-core-3.2.0/lib/rspec/core/hooks.rb:474:in `run' >>> # /Users/user_name/.rbenv/versions/2.1.5/lib/ruby/gems/ >>> 2.1.0/gems/rspec-core-3.2.0/lib/rspec/core/example.rb:343:in >>> `with_around_example_hooks' >>> # /Users/user_name/.rbenv/versions/2.1.5/lib/ruby/gems/ >>> 2.1.0/gems/rspec-core-3.2.0/lib/rspec/core/example.rb:385:in >>> `with_around_and_singleton_context_hooks' >>> # /Users/user_name/.rbenv/versions/2.1.5/lib/ruby/gems/ >>> 2.1.0/gems/rspec-core-3.2.0/lib/rspec/core/example.rb:174:in `run' >>> # /Users/user_name/.rbenv/versions/2.1.5/lib/ruby/gems/ >>> 2.1.0/gems/rspec-core-3.2.0/lib/rspec/core/example_group.rb:548:in >>> `block in run_examples' >>> # /Users/user_name/.rbenv/versions/2.1.5/lib/ruby/gems/ >>> 2.1.0/gems/rspec-core-3.2.0/lib/rspec/core/example_group.rb:544:in `map' >>> # /Users/user_name/.rbenv/versions/2.1.5/lib/ruby/gems/ >>> 2.1.0/gems/rspec-core-3.2.0/lib/rspec/core/example_group.rb:544:in >>> `run_examples' >>> # /Users/user_name/.rbenv/versions/2.1.5/lib/ruby/gems/ >>> 2.1.0/gems/rspec-core-3.2.0/lib/rspec/core/example_group.rb:512:in `run' >>> # /Users/user_name/.rbenv/versions/2.1.5/lib/ruby/gems/ >>> 2.1.0/gems/rspec-core-3.2.0/lib/rspec/core/runner.rb:110:in `block (3 >>> levels) in run_specs' >>> # /Users/user_name/.rbenv/versions/2.1.5/lib/ruby/gems/ >>> 2.1.0/gems/rspec-core-3.2.0/lib/rspec/core/runner.rb:110:in `map' >>> # /Users/user_name/.rbenv/versions/2.1.5/lib/ruby/gems/ >>> 2.1.0/gems/rspec-core-3.2.0/lib/rspec/core/runner.rb:110:in `block (2 >>> levels) in run_specs' >>> # /Users/user_name/.rbenv/versions/2.1.5/lib/ruby/gems/ >>> 2.1.0/gems/rspec-core-3.2.0/lib/rspec/core/configuration.rb:1526:in >>> `with_suite_hooks' >>> # /Users/user_name/.rbenv/versions/2.1.5/lib/ruby/gems/ >>> 2.1.0/gems/rspec-core-3.2.0/lib/rspec/core/runner.rb:109:in `block in >>> run_specs' >>> # /Users/user_name/.rbenv/versions/2.1.5/lib/ruby/gems/ >>> 2.1.0/gems/rspec-core-3.2.0/lib/rspec/core/reporter.rb:62:in `report' >>> # /Users/user_name/.rbenv/versions/2.1.5/lib/ruby/gems/ >>> 2.1.0/gems/rspec-core-3.2.0/lib/rspec/core/runner.rb:108:in `run_specs' >>> # /Users/user_name/.rbenv/versions/2.1.5/lib/ruby/gems/ >>> 2.1.0/gems/rspec-core-3.2.0/lib/rspec/core/runner.rb:86:in `run' >>> # /Users/user_name/.rbenv/versions/2.1.5/lib/ruby/gems/ >>> 2.1.0/gems/rspec-core-3.2.0/lib/rspec/core/runner.rb:70:in `run' >>> # /Users/user_name/.rbenv/versions/2.1.5/lib/ruby/gems/ >>> 2.1.0/gems/rspec-core-3.2.0/lib/rspec/core/runner.rb:38:in `invoke' >>> # /Users/user_name/.rbenv/versions/2.1.5/lib/ruby/gems/ >>> 2.1.0/gems/rspec-core-3.2.0/exe/rspec:4:in `<top (required)>' >>> # /Users/user_name/.rbenv/versions/2.1.5/bin/rspec:23:in `load' >>> # /Users/user_name/.rbenv/versions/2.1.5/bin/rspec:23:in `<main>' >>> # >>> # Showing full backtrace because every line was filtered out. >>> # See docs for RSpec::Configuration#backtrace_exclusion_patterns >>> and >>> # RSpec::Configuration#backtrace_inclusion_patterns for more >>> information. >>> >>> Help pls... >>> >> -- > You received this message because you are subscribed to the Google Groups > "rspec" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To post to this group, send email to [email protected]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/rspec/02123571-772f-4e12-bfcb-d555fc43f188%40googlegroups.com > <https://groups.google.com/d/msgid/rspec/02123571-772f-4e12-bfcb-d555fc43f188%40googlegroups.com?utm_medium=email&utm_source=footer> > . > > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "rspec" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/rspec/CAKCESdj6Zz_cYsDSEL7VSwfxXyMr-tCg--hzxHpZeYKnK_FYHg%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
