2011-12-15 7 views
0

Spork、Rails3、RSpec2、Capybara、およびFactoryGirlを使用しています。私は次のエラーを取得するカピバラテスト実行しようとしますが次のエラーが発生するのはなぜですか? "Mysql2 :: Error:MySQL接続を閉じました:SHOW TABLES"

:database.ymlのが使用している

Failure/Error: model = FactoryGirl.create(:model) 
    ActiveRecord::StatementInvalid: 
     Mysql2::Error: closed MySQL connection: SHOW TABLES 

MySQLデータベースを、稼働しています。私はdatabase.ymlと同じ設定を使ってコマンドラインから接続することができます。

テストは正常に動作していましたが、テストが失敗した理由を理解しようとしていて、このエラーが発生し始めました。

データベースをシャットダウンして再起動しても問題ありません。 database.ymlの

test: 
    adapter: mysql2 
    encoding: utf8 
    reconnect: false 
    database: mysql_app_test 
    pool: 5 
    username: root 
    password: 
    host: localhost 

から

私のスペックから

require 'spec_helper' 

describe "Model", :js => true do 

    before(:each) do 
    model = FactoryGirl.create(:model) 
    visit model_path(model) 
    end 

    it "should show the button" do 
    # Start the lesson 
    find("#startButton") 
    end 
end 

UPDATE:

それは私が関連するCapybara Transactional Fixtures Issuesolution 3を使用していることを言及することも重要ですRack :: Test以外のドライバを使用してください。

私はそうのような私spec_helper.rbファイルに私の解決策を置いていた:私は同様のissues when using solution 3 with sporksolution 2のコメントであったことを聞いていた

Spork.prefork do 
    ... 
    class ActiveRecord::Base 
    mattr_accessor :shared_connection 
    @@shared_connection = nil 

    def self.connection 
     @@shared_connection || retrieve_connection 
    end 
    end 

    ActiveRecord::Base.shared_connection = ActiveRecord::Base.connection 
    ... 
end 

。コメント者が言及した問題であるかどうかはわかりません。

+0

コマンドラインからSHOW TABLESコマンドを実行しようとしましたか? –

+0

ええ、私は同じユーザ/パスワード/データベースでMySQLにログインし、SHOW TABLESを実行することができます。期待どおりに動作します。 – plainjimbo

+0

MySQL2のgithub:https:// githubで問題が発生しました。 – plainjimbo

答えて

関連する問題