2009-06-10 13 views
2

単体テストでレコードを作成すると、rake testで実行されたときに 'ActiveRecord :: RecordInvalid' :単位。私はruby( 'ruby unit/blah_test.rb')を使って単体テストを手動で実行するとこのエラーは発生しません。私は問題を私のモデルに存在する検証に絞り込んだ。これは、実際に有効な値を取得するために別のモデルに対して検索を実行している包含​​検証です。私はこれが時間内にロードされていないフィクスチャに関連していると思っていますが、私は 'fixtures:all'をtest_helper.rbに持っています(ユニットテスト自体に 'fixtures:all'を含めて試しました)。Rails 2.3.2単体テストは正常なrubyで実行したときに成功し、rakeテストで実行すると失敗する:units

は誰でもこれをさらに絞り込むために、私は試みることができる方法上の任意の提案を持っていますか?あなたはrake test:unitsで。備品が不足していると、テスト用のデータベース・スキーマが設定されます収まるように見ている確かに何

感謝。

答えて

1

をあなたのインクルードされたモデルのフィクスチャにデータが入っていない可能性があります。直接呼び出しでは、最後に残した状態でテストデータベースを使用します。デル。

fixtures :allが試合に入っていない可能性がありますテストクラスにfixturesの別の呼び出しがありますか?

ruby​​でテストを実行する前にrake db:test:prepareを試してみると、新しいテストデータベースで実行されている可能性があります。これは、フィクスチャがあなたの含まれているモデルのためにロードされていないかどうかをさらに強調します。

+0

db:test:prepareを実行した後、通常のrubyでテストを実行すると、rakeを通して実行するのと同じ出力が出されます。ありがとう。 –

関連する問題