0

私は単一テーブルの継承データモデルを持っていました。ここではCityPage < Destinationです。これはうまくいった。Minitest:STIを使用するとテーブルが空になる

もう1つのタイプCountryPage < Destinationを追加したので、テストは失敗します。具体的にはCityPage.allCityPageのフィクスチャ(&は完全に以前に変更されていない)を持っていても空の結果を返します。

私は間違っていますか?テストデータが生成されないのはなぜですか?複数の子モデルでSTIを持っている場合

答えて

0

は、あなたがtypeプロパティを使用して、個々の器具を1つの備品が親にちなんで名付けられたファイルを使用して、区別する必要がある(すなわち、STIは、ボンネットの下に何をしますか)。だから私の場合、私は/test/fixtures/destinations.ymlでなく、/test/fixtures/{city,country}_pages.ymlである必要がありました。

ブリーフィングは、テスト実行後にMinitestがdbをクリアすることと関連があることを示しています。下記のコメントを参照してください。

+1

明確にするために、各フィクスチャファイルを順次ロードすると、各ファイルをインポートする前に関連するデータベーステーブルが空になります。最終的に同じテーブルを使用するフィクスチャファイルが複数ある場合(この場合は「デスティネーション」)、悪い時間がかかるでしょう。 YAMLファイルが処理される順序はシステムによって異なりますので、ローカルで動作するものはCIサービスでは機能しないか、その逆もあります。 – Barry

関連する問題