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 Issueにsolution 3を使用していることを言及することも重要ですRack :: Test以外のドライバを使用してください。
私はそうのような私spec_helper.rbファイルに私の解決策を置いていた:私は同様のissues when using solution 3 with sporkがsolution 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
。コメント者が言及した問題であるかどうかはわかりません。
コマンドラインからSHOW TABLESコマンドを実行しようとしましたか? –
ええ、私は同じユーザ/パスワード/データベースでMySQLにログインし、SHOW TABLESを実行することができます。期待どおりに動作します。 – plainjimbo
MySQL2のgithub:https:// githubで問題が発生しました。 – plainjimbo