6
rake specを実行せずにRailsrspecテスト用のテストデータベースを準備するにはどうすればよいですか?
重要なトラブルシューティングの後、rake specrspecを直接実行する前に(たとえば、スペックのサブセットで)、一度実行する必要があることがわかりました(control-cで中止できます)。Rails3.0.7とRSpec2.5.0を実行しています。 明らかに、rakeはいくつかの重要なデータベースセットアップタスク/コードを実行しています(ルートレベルのレールRakefileやその他の場所にカスタムコードがあります)。 実行せずにraketestデータベースのセットアップタスク/コードを実行するにはどうすればよいrake specですか? ファイルのサブセットでrspecを実行できることに加えて、specjourを使用してスペックを複数のコアに分散しています(LAN全体にスペックを分散することはまだ成功していません)が、rspecを実行する場合と同じ動作が見られます直接:rake specspecjourが機能する前に、各テストデータベースで実行する必要があります(2つのコアを想定): rake spec TEST_ENV_NUMBER=1 control-c (after tests start) rake spec TEST_ENV_NUMBER=2 control-c (after tests start) specjour 注:私のconfig / database.ymlには、テスト用にこのエントリがあります(並列テストgemで一般的です)。 test: adapter: postgresql encoding: unicode database: test<%=ENV['TEST_ENV_NUMBER']%> username: user password: parallel_testsはデータベースを正しく設定しているようですが、仕様の多くは失敗しています。 また、実行するspecjour prepareと、Postgresがデータベースを見つけることができないというエラーをログに記録しますが、データベースは作成されます(テーブルなし)。その後の実行では、エラーはログに記録されませんが、テーブルも作成されません。私の問題全体が単なるバグである可能性があるprepareので、githubで報告しました。 Specjour::Configuration.prepare.specjour / hooks.rbに設定することで、各specjourテストデータベースで任意のコードを実行できると思います。そのため、実行する必要のあるrakeタスクやその他のコードがあれば、そこで機能する可能性があります。